[PATCH] USBATM: -EILSEQ workaround
authorDuncan Sands <baldrick@free.fr>
Fri, 13 Jan 2006 10:12:58 +0000 (11:12 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 1 Feb 2006 01:23:40 +0000 (17:23 -0800)
Don't throttle on -EILSEQ urb status if requested by a minidriver.
It seems the ueagle modems are buggy, giving -EILSEQ when they
have no data to send.  The ueagle change will be sent separately
by the ueagle guys.  Patch by Matthieu Castet.

Signed-off-by: Duncan Sands <baldrick@free.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/atm/usbatm.c
drivers/usb/atm/usbatm.h

index c925e3a4267274d824639b45b35a59773f3c88ca..5d339af16248921ec382be25544c52b364e9ac37 100644 (file)
@@ -270,7 +270,10 @@ static void usbatm_complete(struct urb *urb, struct pt_regs *regs)
 
        spin_unlock_irqrestore(&channel->lock, flags);
 
-       if (unlikely(urb->status)) {
+       if (unlikely(urb->status) &&
+                       (!(channel->usbatm->flags & UDSL_IGNORE_EILSEQ) ||
+                        urb->status != -EILSEQ ))
+       {
                if (printk_ratelimit())
                        atm_warn(channel->usbatm, "%s: urb 0x%p failed (%d)!\n",
                                __func__, urb, urb->status);
index bdff534b941d1dac56a0060a879b8a359b50b301..1cf4767007ded2f98e7461996da06b2df14eb756 100644 (file)
@@ -88,6 +88,7 @@
 
 #define UDSL_SKIP_HEAVY_INIT   (1<<0)
 #define UDSL_USE_ISOC          (1<<1)
+#define UDSL_IGNORE_EILSEQ     (1<<2)
 
 
 /* mini driver */