Index: sys/dev/usb/usb_subr.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/usb_subr.c,v retrieving revision 1.198.2.26 diff -u -p -r1.198.2.26 usb_subr.c --- sys/dev/usb/usb_subr.c 19 Mar 2016 07:12:21 -0000 1.198.2.26 +++ sys/dev/usb/usb_subr.c 12 Apr 2016 06:41:57 -0000 @@ -899,8 +899,10 @@ usbd_attachwholedevice(device_t parent, dlocs[USBDEVIFCF_CONFIGURATION] = -1; dlocs[USBDEVIFCF_INTERFACE] = -1; + KERNEL_LOCK(1, NULL); dv = config_found_sm_loc(parent, "usbdevif", dlocs, &uaa, usbd_print, config_stdsubmatch); + KERNEL_UNLOCK_ONE(NULL); if (dv) { dev->ud_subdevs = kmem_alloc(sizeof(dv), KM_SLEEP); if (dev->ud_subdevs == NULL) @@ -978,8 +980,10 @@ usbd_attachinterfaces(device_t parent, s loc != uiaa.uiaa_ifaceno) continue; } + KERNEL_LOCK(1, NULL); dv = config_found_sm_loc(parent, "usbifif", ilocs, &uiaa, usbd_ifprint, config_stdsubmatch); + KERNEL_UNLOCK_ONE(NULL); if (!dv) continue;