summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usbdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/usbdi.c')
-rw-r--r--sys/dev/usb/usbdi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index 2949b23..41df727 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -845,8 +845,9 @@ usb_transfer_complete(xfer)
if (!repeat) {
/* XXX should we stop the queue on all errors? */
- if (xfer->status == USBD_CANCELLED ||
- xfer->status == USBD_TIMEOUT)
+ if ((xfer->status == USBD_CANCELLED
+ || xfer->status == USBD_TIMEOUT)
+ && pipe->iface != NULL) /* not control pipe */
pipe->running = 0;
else
usbd_start_next(pipe);
@@ -934,7 +935,7 @@ usbd_do_request_flags(dev, req, data, flags, actlen)
#ifdef DIAGNOSTIC
#if defined(__i386__) && defined(__FreeBSD__)
KASSERT(intr_nesting_level == 0,
- ("ohci_abort_req in interrupt context"));
+ ("usbd_do_request: in interrupt context"));
#endif
if (dev->bus->intr_context) {
printf("usbd_do_request: not in process context\n");
OpenPOWER on IntegriCloud