Index: sys/dev/usb/usbdi.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/usbdi.h,v retrieving revision 1.87 diff -u -p -u -r1.87 usbdi.h --- sys/dev/usb/usbdi.h 22 Jan 2013 13:27:59 -0000 1.87 +++ sys/dev/usb/usbdi.h 4 Sep 2013 12:57:02 -0000 @@ -278,9 +278,19 @@ struct usbif_attach_arg { /* No match */ #define UMATCH_NONE 0 + +/* + * IPL_USB is defined as IPL_VM for drivers that have not been made MP safe. + * IPL_VM (currently) takes the kernel lock. + * + * Any driver converted to be MP safe should switch to IPL_SCHED and remove + * the need for the kernel lock to be taken. + * + * Eventually, IPL_USB can/should be changed + */ #define splusb splsoftnet -#define splhardusb splbio -#define IPL_USB IPL_BIO +#define splhardusb splvm #define IPL_SOFTUSB IPL_SOFTNET +#define IPL_USB IPL_VM #endif /* _USBDI_H_ */ Index: sys/dev/usb/usbdivar.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/usbdivar.h,v retrieving revision 1.103 diff -u -p -u -r1.103 usbdivar.h --- sys/dev/usb/usbdivar.h 24 Mar 2013 22:38:45 -0000 1.103 +++ sys/dev/usb/usbdivar.h 4 Sep 2013 12:57:02 -0000 @@ -33,7 +33,7 @@ /* * Discussion about locking in the USB code: * - * The host controller presents one lock at IPL_SOFTUSB. + * The host controller presents one lock at IPL_SOFTUSB (aka IPL_SOFTNET). * * List of hardware interface methods, and whether the lock is held * when each is called by this module: