ath9k: fix a DMA related race condition on reset
authorFelix Fietkau <nbd@openwrt.org>
Sun, 5 Dec 2010 19:17:53 +0000 (20:17 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 7 Dec 2010 19:57:05 +0000 (14:57 -0500)
commit080e1a259acea10b6df8e2a8e49b47481940220a
tree1e5b3972ea040ed40a255529da5e522a6909d5be
parent841051602e3fa18ea468fe5a177aa92b6eb44b56
ath9k: fix a DMA related race condition on reset

When ath_drain_all_txq fails to stop DMA, it issues a hw reset. This reset
happens at a very problematic point in time, when the hardware rx path has
not been stopped yet. This could lead to memory corruption, hardware hangs
or other issues.
To fix these issues, simply remove the reset entirely and check the tx DMA
stop status to prevent problems with fast channel changes.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/xmit.c