ath9k: merge a fix for queue start/stop handling (fixes #18164, #18130)
[oweals/openwrt.git] / package / kernel / mac80211 / patches / 308-ath9k-Disable-beacon-tasklet-during-reset.patch
1 From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
2 Date: Fri, 17 Oct 2014 07:40:13 +0530
3 Subject: [PATCH] ath9k: Disable beacon tasklet during reset
4
5 When a chip reset is done, all running timers,
6 tasklets etc. are stopped but the beacon tasklet
7 is left running. Fix this.
8
9 Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
10 ---
11
12 --- a/drivers/net/wireless/ath/ath9k/main.c
13 +++ b/drivers/net/wireless/ath/ath9k/main.c
14 @@ -281,6 +281,7 @@ static int ath_reset_internal(struct ath
15         __ath_cancel_work(sc);
16  
17         tasklet_disable(&sc->intr_tq);
18 +       tasklet_disable(&sc->bcon_tasklet);
19         spin_lock_bh(&sc->sc_pcu_lock);
20  
21         if (!sc->cur_chan->offchannel) {
22 @@ -326,6 +327,7 @@ static int ath_reset_internal(struct ath
23  
24  out:
25         spin_unlock_bh(&sc->sc_pcu_lock);
26 +       tasklet_enable(&sc->bcon_tasklet);
27         tasklet_enable(&sc->intr_tq);
28  
29         return r;