Skip to content

Commit

Permalink
ath9k: move workqueue cancels to stop callback
Browse files Browse the repository at this point in the history
We should be cancelling our work at the stop callback since
we are borrowing the mac80211 workqueue for our work. As it
stands mac80211 expects this for suspend purposes.

The ath9k specific virtual wiphy stuff need only be
cancelled only when the we have no secondary virtual wiphys.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed Aug 4, 2009
1 parent 35c95ab commit c94dbff
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1251,11 +1251,6 @@ void ath_detach(struct ath_softc *sc)

DPRINTF(sc, ATH_DBG_CONFIG, "Detach ATH hw\n");

cancel_delayed_work_sync(&sc->ath_led_blink_work);
cancel_delayed_work_sync(&sc->tx_complete_work);
cancel_delayed_work_sync(&sc->wiphy_work);
cancel_work_sync(&sc->chan_work);

ath_deinit_leds(sc);

for (i = 0; i < sc->num_sec_wiphy; i++) {
Expand Down Expand Up @@ -2091,6 +2086,14 @@ static void ath9k_stop(struct ieee80211_hw *hw)

aphy->state = ATH_WIPHY_INACTIVE;

cancel_delayed_work_sync(&sc->ath_led_blink_work);
cancel_delayed_work_sync(&sc->tx_complete_work);

if (!sc->num_sec_wiphy) {
cancel_delayed_work_sync(&sc->wiphy_work);
cancel_work_sync(&sc->chan_work);
}

if (sc->sc_flags & SC_OP_INVALID) {
DPRINTF(sc, ATH_DBG_ANY, "Device not present\n");
return;
Expand Down

0 comments on commit c94dbff

Please sign in to comment.