Index: sys/dev/usb/usb.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/usb.c,v retrieving revision 1.156.2.7 diff -u -p -r1.156.2.7 usb.c --- sys/dev/usb/usb.c 3 Apr 2015 21:22:33 -0000 1.156.2.7 +++ sys/dev/usb/usb.c 28 May 2015 06:42:09 -0000 @@ -218,6 +218,14 @@ CFATTACH_DECL3_NEW(usb, sizeof(struct us static const char *taskq_names[] = USB_TASKQ_NAMES; +void usbinit(void); + +void +usbinit(void) +{ + USBHIST_INIT(usbhist, USBHIST_SIZE); +} + int usb_match(device_t parent, cfdata_t match, void *aux) { @@ -274,8 +282,6 @@ usb_once_init(void) struct usb_taskq *taskq; int i; - USBHIST_INIT(usbhist, USBHIST_SIZE); - selinit(&usb_selevent); mutex_init(&usb_event_lock, MUTEX_DEFAULT, IPL_NONE); cv_init(&usb_event_cv, "usbrea"); Index: sys/kern/init_main.c =================================================================== RCS file: /cvsroot/src/sys/kern/init_main.c,v retrieving revision 1.461.2.1 diff -u -p -r1.461.2.1 init_main.c --- sys/kern/init_main.c 6 Apr 2015 15:18:20 -0000 1.461.2.1 +++ sys/kern/init_main.c 28 May 2015 06:42:13 -0000 @@ -263,6 +263,8 @@ static void configure2(void); static void configure3(void); void main(void); +void usbinit(void); + /* * System startup; initialize the world, create process 0, mount root * filesystem, and fork to create init and pagedaemon. Most of the @@ -509,6 +511,8 @@ main(void) /* Initialize sockets thread(s) */ soinit1(); + usbinit(); + /* Configure the system hardware. This will enable interrupts. */ configure();