]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitdd5f5bfa04458fb28deddd6981c731b6062f6faf
tree1e5b3972ea040ed40a255529da5e522a6909d5be
parentc40f67ee1a7f823ecc7fd43012f316b4f99335a6
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