summary refs log tree commit diff
path: root/drivers
diff options
context:
space:
mode:
authorJiri Benc <jbenc@suse.cz>2006-04-07 04:10:47 -0400
committerJohn W. Linville <linville@tuxdriver.com>2006-04-24 16:15:51 -0400
commit2c1bd26035491cd0ba7e49be6ed610fc4912fef9 (patch)
treea49cb8466cccfd065419d017c4f6aba023d183d6 /drivers
parenta28dc81dcd9ca9a451bfcab0a2351b0b07146759 (diff)
downloadlinux-2c1bd26035491cd0ba7e49be6ed610fc4912fef9.tar.gz
[PATCH] orinoco: fix BAP0 offset error after several days of operation
After several days of operation of Netgear MA311 card, the card becomes
to seek improperly and needs reset. This patch tries to reset the card
when this situation occurs.

Mar  9 06:45:16 berkeley kernel: wlan0: Error -5 writing packet to BAP
Mar  9 06:45:16 berkeley kernel: hermes @ f992a000: BAP0 offset error: reg=0x4044 id=0x128 offset=0x44
Mar  9 06:45:16 berkeley kernel: wlan0: Error -5 writing packet to BAP
Mar  9 06:45:16 berkeley kernel: hermes @ f992a000: BAP0 offset error: reg=0x4044 id=0x128 offset=0x44
(etc.)

A more detailed description of the problem can be found at
https://bugzilla.novell.com/show_bug.cgi?id=154773
The same problem with different card is reported at
http://sourceforge.net/mailarchive/message.php?msg_id=14597046

Signed-off-by: Jiri Benc <jbenc@suse.cz>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/orinoco.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 4d6373814b93..80cf6fba3798 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -536,6 +536,8 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
 	return NETDEV_TX_OK;
 
  busy:
+	if (err == -EIO)
+		schedule_work(&priv->reset_work);
 	orinoco_unlock(priv, &flags);
 	return NETDEV_TX_BUSY;
 }