b43legacy: Work around mac80211 race condition
authorLarry Finger <Larry.Finger@lwfinger.net>
Sun, 2 Aug 2009 03:32:48 +0000 (22:32 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 4 Aug 2009 20:44:24 +0000 (16:44 -0400)
commitc1be5152860218dffea6a47cff5ea31a56c6cff5
treecd903db6abd58139b8b0628cbeabf5e0a83d9a9f
parent3ad201496badddd8e1cda87ee6d29e8b3b8e1279
b43legacy: Work around mac80211 race condition

As shown in http://thread.gmane.org/gmane.linux.kernel.wireless.general/36497,
mac80211 has a bug that allows a call to the TX routine after the queues have
been stopped. This situation will only occur under extreme stress. Although
b43legacy does not crash when this condition occurs, it does generate a WARN_ON
and also logs a queue overrun message. This patch recognizes b43legacy is not
at fault and logs a message only when the most verbose debugging mode is
enabled. In the unlikely event that the queue is not stopped when the DMA
queue becomes full, then a warning is issued.

This patch is based on the one used by b43.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43legacy/dma.c