diff options
author | Pavel Roskin <proski@gnu.org> | 2008-03-12 16:13:31 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-13 15:57:25 -0400 |
commit | f50e4a8494a74bdbc0f86f1430a4cca2a4f28799 (patch) | |
tree | 8e8198f8eec78a56deb4e699d6107d9a0a58abec /drivers/net/wireless/ath5k | |
parent | 5abdc49d6e521126ed4c15e913a5c30f6dd95e6b (diff) | |
download | op-kernel-dev-f50e4a8494a74bdbc0f86f1430a4cca2a4f28799.zip op-kernel-dev-f50e4a8494a74bdbc0f86f1430a4cca2a4f28799.tar.gz |
ath5k: disable irq handling in ath5k_hw_detach()
Once ah has been freed, it may not be accessed. Set ATH_STAT_INVALID
bit to make the interrupt handler return IRQ_NONE without accessing ah.
This fixes oops on unload with CONFIG_DEBUG_SHIRQ enabled.
Signed-off-by: Pavel Roskin <proski@gnu.org>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath5k')
-rw-r--r-- | drivers/net/wireless/ath5k/hw.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c index c2de2d9..0175743 100644 --- a/drivers/net/wireless/ath5k/hw.c +++ b/drivers/net/wireless/ath5k/hw.c @@ -427,6 +427,8 @@ void ath5k_hw_detach(struct ath5k_hw *ah) { ATH5K_TRACE(ah->ah_sc); + __set_bit(ATH_STAT_INVALID, ah->ah_sc->status); + if (ah->ah_rf_banks != NULL) kfree(ah->ah_rf_banks); |