Index: uhci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/uhci.c,v retrieving revision 1.283 diff -p -u -r1.283 uhci.c --- uhci.c 3 Sep 2018 16:29:34 -0000 1.283 +++ uhci.c 10 Sep 2018 19:59:54 -0000 @@ -2568,7 +2568,8 @@ uhci_device_ctrl_start(struct usbd_xfer memcpy(KERNADDR(&upipe->ctrl.reqdma, 0), req, sizeof(*req)); usb_syncmem(&upipe->ctrl.reqdma, 0, sizeof(*req), BUS_DMASYNC_PREWRITE); - mutex_enter(&sc->sc_lock); + if (!sc->sc_bus.ub_usepolling) + mutex_enter(&sc->sc_lock); /* Set up data transaction */ if (len != 0) { @@ -2670,7 +2671,8 @@ uhci_device_ctrl_start(struct usbd_xfer uhci_timeout, xfer); } xfer->ux_status = USBD_IN_PROGRESS; - mutex_exit(&sc->sc_lock); + if (!sc->sc_bus.ub_usepolling) + mutex_exit(&sc->sc_lock); return USBD_IN_PROGRESS; }