aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Sands2006-01-13 11:12:58 +0100
committerGreg Kroah-Hartman2006-01-31 17:23:40 -0800
commita3673d3cd1cdeec6b503ffa418ca2d5aeff82fd7 (patch)
treee68c34bc9fe633afa557b0f3153b0c61df6a2ae3
parent9b0e54addf3ea8488c7b57166fb38feeb8ea28fd (diff)
[PATCH] USBATM: -EILSEQ workaround
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>
-rw-r--r--drivers/usb/atm/usbatm.c5
-rw-r--r--drivers/usb/atm/usbatm.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index c925e3a42672..5d339af16248 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -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);
diff --git a/drivers/usb/atm/usbatm.h b/drivers/usb/atm/usbatm.h
index bdff534b941d..1cf4767007de 100644
--- a/drivers/usb/atm/usbatm.h
+++ b/drivers/usb/atm/usbatm.h
@@ -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 */