Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/usb Don't stall the control pipe on error.



details:   https://anonhg.NetBSD.org/src/rev/822eb328799c
branches:  trunk
changeset: 481899:822eb328799c
user:      augustss <augustss%NetBSD.org@localhost>
date:      Tue Feb 08 18:46:03 2000 +0000

description:
Don't stall the control pipe on error.

diffstat:

 sys/dev/usb/usbdi.c |  9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diffs (30 lines):

diff -r 1d75fa01ae32 -r 822eb328799c sys/dev/usb/usbdi.c
--- a/sys/dev/usb/usbdi.c       Tue Feb 08 18:45:27 2000 +0000
+++ b/sys/dev/usb/usbdi.c       Tue Feb 08 18:46:03 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usbdi.c,v 1.61 2000/01/31 20:13:07 augustss Exp $      */
+/*     $NetBSD: usbdi.c,v 1.62 2000/02/08 18:46:03 augustss Exp $      */
 /*     $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $      */
 
 /*
@@ -851,8 +851,9 @@
 
        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);
@@ -940,7 +941,7 @@
 #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");



Home | Main Index | Thread Index | Old Index