]> err.no Git - linux-2.6/commitdiff
[PATCH] zd1211rw: usb_clear_halt not allowed in IRQ context
authorDaniel Drake <dsd@gentoo.org>
Wed, 5 Jul 2006 14:57:39 +0000 (15:57 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 10 Jul 2006 18:16:26 +0000 (14:16 -0400)
We will reimplement halt-clearing later, when we have periodic
housekeeping routines in place. This will do as a temporary fix, the
EPIPE case has not yet been seen.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/zd1211rw/zd_usb.c

index ce1cb2c6aa8d3833567593860b22c6598f879feb..72f90525bf681a00b724ed171ee0ba708dc2e9c9 100644 (file)
@@ -375,10 +375,8 @@ static void int_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
        case -ENODEV:
        case -ENOENT:
        case -ECONNRESET:
-               goto kfree;
        case -EPIPE:
-               usb_clear_halt(urb->dev, EP_INT_IN);
-               /* FALL-THROUGH */
+               goto kfree;
        default:
                goto resubmit;
        }
@@ -580,10 +578,8 @@ static void rx_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
        case -ENODEV:
        case -ENOENT:
        case -ECONNRESET:
-               return;
        case -EPIPE:
-               usb_clear_halt(urb->dev, EP_DATA_IN);
-               /* FALL-THROUGH */
+               return;
        default:
                dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
                goto resubmit;
@@ -749,11 +745,9 @@ static void tx_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
        case -ENODEV:
        case -ENOENT:
        case -ECONNRESET:
+       case -EPIPE:
                dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
                break;
-       case -EPIPE:
-               usb_clear_halt(urb->dev, EP_DATA_OUT);
-               /* FALL-THROUGH */
        default:
                dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
                goto resubmit;