diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2011-01-25 14:08:40 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-27 16:41:08 -0500 |
commit | 203043f579ece44bb30291442cd56332651dd37d (patch) | |
tree | aa219eadbff45abf09011f595fa27febb6152ee7 /drivers/net/wireless/ath/ath9k/init.c | |
parent | c9234a662e38309d6fe272ad80e6cdb8d24654f0 (diff) | |
download | kernel_samsung_smdk4412-203043f579ece44bb30291442cd56332651dd37d.zip kernel_samsung_smdk4412-203043f579ece44bb30291442cd56332651dd37d.tar.gz kernel_samsung_smdk4412-203043f579ece44bb30291442cd56332651dd37d.tar.bz2 |
ath9k: fix race conditions when stop device
We do not kill any scheduled tasklets when stopping device, that may
cause usage of resources after free. Moreover we enable interrupts
in tasklet function, so we could potentially end with interrupts
enabled when driver is not ready to receive them.
I think patch should fix Ben's kernel crash from:
http://marc.info/?l=linux-wireless&m=129438358921501&w=2
Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/init.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index 767d8b8..b3254a3 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c @@ -598,8 +598,6 @@ err_btcoex: err_queues: ath9k_hw_deinit(ah); err_hw: - tasklet_kill(&sc->intr_tq); - tasklet_kill(&sc->bcon_tasklet); kfree(ah); sc->sc_ah = NULL; @@ -807,9 +805,6 @@ static void ath9k_deinit_softc(struct ath_softc *sc) ath9k_hw_deinit(sc->sc_ah); - tasklet_kill(&sc->intr_tq); - tasklet_kill(&sc->bcon_tasklet); - kfree(sc->sc_ah); sc->sc_ah = NULL; } |