[PATCH 13/13] USBATM: -EILSEQ workaround

From: Duncan Sands
Date: Fri Jan 13 2006 - 05:11:38 EST


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@xxxxxxx>
Index: Linux/drivers/usb/atm/usbatm.c
===================================================================
--- Linux.orig/drivers/usb/atm/usbatm.c 2006-01-13 09:27:55.000000000 +0100
+++ Linux/drivers/usb/atm/usbatm.c 2006-01-13 09:28:29.000000000 +0100
@@ -270,7 +270,10 @@

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: Linux/drivers/usb/atm/usbatm.h
===================================================================
--- Linux.orig/drivers/usb/atm/usbatm.h 2006-01-13 09:25:43.000000000 +0100
+++ Linux/drivers/usb/atm/usbatm.h 2006-01-13 09:28:29.000000000 +0100
@@ -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 */