ath5k: disable irq handling in ath5k_hw_detach()
authorPavel Roskin <proski@gnu.org>
Wed, 12 Mar 2008 20:13:31 +0000 (16:13 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 13 Mar 2008 19:57:25 +0000 (15:57 -0400)
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>
drivers/net/wireless/ath5k/hw.c

index c2de2d958e8e7a6e53ef79151508c876ffac04b7..01757436353d76b41adb03185f4e38d2a9303406 100644 (file)
@@ -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);