ath9k: Disable beacon tasklet during reset
When a chip reset is done, all running timers, tasklets etc. are stopped but the beacon tasklet is left running. Fix this. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ae2ff23930
commit
eaf04a6915
|
@ -281,6 +281,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan)
|
||||||
__ath_cancel_work(sc);
|
__ath_cancel_work(sc);
|
||||||
|
|
||||||
tasklet_disable(&sc->intr_tq);
|
tasklet_disable(&sc->intr_tq);
|
||||||
|
tasklet_disable(&sc->bcon_tasklet);
|
||||||
spin_lock_bh(&sc->sc_pcu_lock);
|
spin_lock_bh(&sc->sc_pcu_lock);
|
||||||
|
|
||||||
if (!sc->cur_chan->offchannel) {
|
if (!sc->cur_chan->offchannel) {
|
||||||
|
@ -326,6 +327,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan)
|
||||||
|
|
||||||
out:
|
out:
|
||||||
spin_unlock_bh(&sc->sc_pcu_lock);
|
spin_unlock_bh(&sc->sc_pcu_lock);
|
||||||
|
tasklet_enable(&sc->bcon_tasklet);
|
||||||
tasklet_enable(&sc->intr_tq);
|
tasklet_enable(&sc->intr_tq);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
|
Loading…
Reference in New Issue