diff options
Diffstat (limited to 'package/kernel/mac80211/patches/308-ath9k-Disable-beacon-tasklet-during-reset.patch')
-rw-r--r-- | package/kernel/mac80211/patches/308-ath9k-Disable-beacon-tasklet-during-reset.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/308-ath9k-Disable-beacon-tasklet-during-reset.patch b/package/kernel/mac80211/patches/308-ath9k-Disable-beacon-tasklet-during-reset.patch new file mode 100644 index 0000000000..faf282dcde --- /dev/null +++ b/package/kernel/mac80211/patches/308-ath9k-Disable-beacon-tasklet-during-reset.patch @@ -0,0 +1,29 @@ +From: Sujith Manoharan <c_manoha@qca.qualcomm.com> +Date: Fri, 17 Oct 2014 07:40:13 +0530 +Subject: [PATCH] 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> +--- + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -281,6 +281,7 @@ static int ath_reset_internal(struct ath + __ath_cancel_work(sc); + + tasklet_disable(&sc->intr_tq); ++ tasklet_disable(&sc->bcon_tasklet); + spin_lock_bh(&sc->sc_pcu_lock); + + if (!sc->cur_chan->offchannel) { +@@ -326,6 +327,7 @@ static int ath_reset_internal(struct ath + + out: + spin_unlock_bh(&sc->sc_pcu_lock); ++ tasklet_enable(&sc->bcon_tasklet); + tasklet_enable(&sc->intr_tq); + + return r; |