2008/3/12, Pavel Roskin <proski@xxxxxxx>: > 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@xxxxxxx> > --- > > 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 677600b..ff579a2 100644 > --- a/drivers/net/wireless/ath5k/hw.c > +++ b/drivers/net/wireless/ath5k/hw.c > @@ -458,6 +458,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); > > > > -- > Regards, > Pavel Roskin Acked-by: Nick Kossifidis <mickflemm@xxxxxxxxx> -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html