Эх сурвалжийг харах

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>
Sujith Manoharan 11 жил өмнө
parent
commit
eaf04a6915

+ 2 - 0
drivers/net/wireless/ath/ath9k/main.c

@@ -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;