diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index 9735ce0d3691..8ea0a10b1b79 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -651,7 +651,6 @@ usb_rem_task_wait(struct usbd_device *dev, struct usb_task *task, int queue, USBHIST_FUNC(); USBHIST_CALLED(usbdebug); SDT_PROBE4(usb, kernel, task, rem__wait__start, dev, task, queue, interlock); - ASSERT_SLEEPABLE(); KASSERT(0 <= queue); KASSERT(queue < USB_NUM_TASKQS); diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c index d01d4d182662..e9bdd1358b6f 100644 --- a/sys/dev/usb/usbdi.c +++ b/sys/dev/usb/usbdi.c @@ -1374,8 +1374,7 @@ void usbd_set_polling(struct usbd_device *dev, int on) { - if (!db_active) - mutex_enter(dev->ud_bus->ub_lock); + mutex_enter(dev->ud_bus->ub_lock); /* * We call softint routine on polling transitions, so @@ -1401,8 +1400,7 @@ usbd_set_polling(struct usbd_device *dev, int on) dev->ud_bus->ub_usepolling--; } - if (!db_active) - mutex_exit(dev->ud_bus->ub_lock); + mutex_exit(dev->ud_bus->ub_lock); } diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h index ba2d9cea35cf..ec7d8eec9529 100644 --- a/sys/dev/usb/usbdi.h +++ b/sys/dev/usb/usbdi.h @@ -313,7 +313,12 @@ struct usbif_attach_arg { #define splhardusb splvm #define SOFTINT_USB SOFTINT_SERIAL + +#if defined(DDB) +#define IPL_SOFTUSB IPL_HIGH +#else #define IPL_SOFTUSB IPL_SOFTSERIAL +#endif #define splusb splsoftserial #endif /* _USBDI_H_ */