aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-07-27 14:53:04 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-08-04 16:43:19 -0400
commitc94dbff7996b861fb0ff730bdf6eac4e2b288402 (patch)
treebb481c6e5c3f57af5807c18ba00c780fd8ad4110 /drivers/net/wireless/ath/ath9k/main.c
parent35c95ab9b5ea3a2bf69d049d5437bb831e9bddf3 (diff)
ath9k: move workqueue cancels to stop callback
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>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 7437b4295b2c..cf44623b5cd2 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1251,11 +1251,6 @@ void ath_detach(struct ath_softc *sc)
1251 1251
1252 DPRINTF(sc, ATH_DBG_CONFIG, "Detach ATH hw\n"); 1252 DPRINTF(sc, ATH_DBG_CONFIG, "Detach ATH hw\n");
1253 1253
1254 cancel_delayed_work_sync(&sc->ath_led_blink_work);
1255 cancel_delayed_work_sync(&sc->tx_complete_work);
1256 cancel_delayed_work_sync(&sc->wiphy_work);
1257 cancel_work_sync(&sc->chan_work);
1258
1259 ath_deinit_leds(sc); 1254 ath_deinit_leds(sc);
1260 1255
1261 for (i = 0; i < sc->num_sec_wiphy; i++) { 1256 for (i = 0; i < sc->num_sec_wiphy; i++) {
@@ -2091,6 +2086,14 @@ static void ath9k_stop(struct ieee80211_hw *hw)
2091 2086
2092 aphy->state = ATH_WIPHY_INACTIVE; 2087 aphy->state = ATH_WIPHY_INACTIVE;
2093 2088
2089 cancel_delayed_work_sync(&sc->ath_led_blink_work);
2090 cancel_delayed_work_sync(&sc->tx_complete_work);
2091
2092 if (!sc->num_sec_wiphy) {
2093 cancel_delayed_work_sync(&sc->wiphy_work);
2094 cancel_work_sync(&sc->chan_work);
2095 }
2096
2094 if (sc->sc_flags & SC_OP_INVALID) { 2097 if (sc->sc_flags & SC_OP_INVALID) {
2095 DPRINTF(sc, ATH_DBG_ANY, "Device not present\n"); 2098 DPRINTF(sc, ATH_DBG_ANY, "Device not present\n");
2096 return; 2099 return;