[PATCH] orinoco: fix BAP0 offset error after several days of operation
authorJiri Benc <jbenc@suse.cz>
Fri, 7 Apr 2006 08:10:47 +0000 (04:10 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 24 Apr 2006 20:15:51 +0000 (16:15 -0400)
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>
drivers/net/wireless/orinoco.c

index 4d6373814b937579ef13461ff51dfc5aaed0dff6..80cf6fba3798ddedeaecde6f9990a2e3dbaf5051 100644 (file)
@@ -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;
 }