mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [Fwd: Re:[PATCH] eth0: Error -16 writing packet header to BAP]
@ 2001-08-15 12:59 Jim Houston
  0 siblings, 0 replies; only message in thread
From: Jim Houston @ 2001-08-15 12:59 UTC (permalink / raw)
  To: brian, hermes, linux-kernel


Hi Brian, David,

I figured out why my last patch didn't work.  The tabs got 
expanded to spaces because I did the old cut and paste.
Please forgive this newbie mistake.

Jim Houston

--   

The patch which follows "fixes" a problem I'm seeing with the
orinoco_cs wireless driver.  The problem results in the error
"Error -110 writing packet header to BAP," and the connection locks up.
This happens almost immediately with the link active. I see this problem
with old "Wavelan Bronze" cards which the driver reports as "Firmware ID 1F
vendor 0x1 (Lucent) version 3.06."  I'm assuming that the problem
is a feature of this old hardware/firmware.  

The change is to some existing error handling (avoidance?) code
which retries if it detects an error setting a BAP offset.  My change
also does this retry if the operation times out.  I looked at the
wvlan_cs driver (which just works) to see if it had a similar
workaround.  It doesn't.

--
Jim Houston


diff -urN -X /home/jim/dontdiff linux-2.4.7-orig/drivers/net/wireless/hermes.c linux-2.4.7/drivers/net/wireless/hermes.c
--- linux-2.4.7-orig/drivers/net/wireless/hermes.c	Tue Jul 31 22:55:00 2001
+++ linux-2.4.7/drivers/net/wireless/hermes.c	Tue Jul 31 22:34:09 2001
@@ -53,9 +53,9 @@
 #include <stdarg.h>
 
 #define DMSG(stuff...) do {printk(KERN_DEBUG "hermes @ 0x%x: " , hw->iobase); \
-			printk(#stuff);} while (0)
+			printk(##stuff);} while (0)
 
-#define DEBUG(lvl, stuff...) if ( (lvl) <= HERMES_DEBUG) DMSG(#stuff)
+#define DEBUG(lvl, stuff...) if ( (lvl) <= HERMES_DEBUG) DMSG(##stuff)
 
 #else /* ! HERMES_DEBUG */
 
@@ -330,20 +330,17 @@
 		reg = hermes_read_reg(hw, oreg);
 	}
 
-	if (reg & HERMES_OFFSET_BUSY) {
-		DEBUG(0,"hermes_bap_seek: returning ETIMEDOUT...\n");
-		return -ETIMEDOUT;
-	}
-
 	/* For some reason, seeking the BAP seems to randomly fail somewhere
 	   (firmware bug?). We retry a few times before giving up. */
-	if (reg & HERMES_OFFSET_ERR) {
-		if (l--) {
-			udelay(1);
-			goto retry;
-		} else
-			return -EIO;
+	if ( (reg & (HERMES_OFFSET_BUSY | HERMES_OFFSET_ERR)) && l--) {
+		udelay(1);
+		goto retry;
 	}
+	if (reg & HERMES_OFFSET_BUSY)
+		return -ETIMEDOUT;
+
+	if (reg & HERMES_OFFSET_ERR)
+		return -EIO;
 
 	return 0;
 }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-08-15 12:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-15 12:59 [Fwd: Re:[PATCH] eth0: Error -16 writing packet header to BAP] Jim Houston

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®