ath9k: fix race condition in irq processing during hardware reset
authorFelix Fietkau <nbd@openwrt.org>
Wed, 14 Jan 2015 13:17:36 +0000 (14:17 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 19 Jan 2015 12:32:29 +0000 (14:32 +0200)
commite3f31175a3eeb492a6ab788e4fa136c19b43aab4
tree2fa9692b9e7a6c1bd78895f09154750480b0452a
parent7b05520160a3252577f9a258609499b73f3bdef1
ath9k: fix race condition in irq processing during hardware reset

To fix invalid hardware accesses, the commit 872b5d814f99 ("ath9k: do not
access hardware on IRQs during reset") made the irq handler ignore interrupts
emitted after queueing a hardware reset (which disables the IRQ). This left a
small time window for the IRQ to get re-enabled by the tasklet, which caused
IRQ storms.  Instead of returning IRQ_NONE when ATH_OP_HW_RESET is set, disable
the IRQ entirely for the duration of the reset.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath9k/main.c