Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 232863
b: refs/heads/master
c: 203043f
h: refs/heads/master
i:
  232861: c7e89d8
  232859: 9e97342
  232855: 1805dc2
  232847: 29b29a3
  232831: bfcff1b
v: v3
  • Loading branch information
Stanislaw Gruszka authored and John W. Linville committed Jan 27, 2011
1 parent 87c666a commit 54f0845
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c9234a662e38309d6fe272ad80e6cdb8d24654f0
refs/heads/master: 203043f579ece44bb30291442cd56332651dd37d
5 changes: 0 additions & 5 deletions trunk/drivers/net/wireless/ath/ath9k/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,8 +598,6 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
err_queues:
ath9k_hw_deinit(ah);
err_hw:
tasklet_kill(&sc->intr_tq);
tasklet_kill(&sc->bcon_tasklet);

kfree(ah);
sc->sc_ah = NULL;
Expand Down Expand Up @@ -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;
}
Expand Down
9 changes: 9 additions & 0 deletions trunk/drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,9 @@ static void ath9k_stop(struct ieee80211_hw *hw)

spin_lock_bh(&sc->sc_pcu_lock);

/* prevent tasklets to enable interrupts once we disable them */
ah->imask &= ~ATH9K_INT_GLOBAL;

/* make sure h/w will not generate any interrupt
* before setting the invalid flag. */
ath9k_hw_disable_interrupts(ah);
Expand All @@ -1326,6 +1329,12 @@ static void ath9k_stop(struct ieee80211_hw *hw)

spin_unlock_bh(&sc->sc_pcu_lock);

/* we can now sync irq and kill any running tasklets, since we already
* disabled interrupts and not holding a spin lock */
synchronize_irq(sc->irq);
tasklet_kill(&sc->intr_tq);
tasklet_kill(&sc->bcon_tasklet);

ath9k_ps_restore(sc);

sc->ps_idle = true;
Expand Down

0 comments on commit 54f0845

Please sign in to comment.