ath9k: move cancel_delayed_work_sync() out of ath_deinit_leds()
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Mon, 27 Jul 2009 18:53:03 +0000 (11:53 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 4 Aug 2009 20:43:18 +0000 (16:43 -0400)
We do this as we'll be moving the cancel elsewhere later.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/main.c

index 49f27648fec8e5316321374d59e6921fbfc5bf87..7437b4295b2cbecc424edf64bda0f309ea347806 100644 (file)
@@ -1056,7 +1056,6 @@ static void ath_unregister_led(struct ath_led *led)
 
 static void ath_deinit_leds(struct ath_softc *sc)
 {
-       cancel_delayed_work_sync(&sc->ath_led_blink_work);
        ath_unregister_led(&sc->assoc_led);
        sc->sc_flags &= ~SC_OP_LED_ASSOCIATED;
        ath_unregister_led(&sc->tx_led);
@@ -1113,6 +1112,7 @@ static void ath_init_leds(struct ath_softc *sc)
        return;
 
 fail:
+       cancel_delayed_work_sync(&sc->ath_led_blink_work);
        ath_deinit_leds(sc);
 }
 
@@ -1251,11 +1251,13 @@ void ath_detach(struct ath_softc *sc)
 
        DPRINTF(sc, ATH_DBG_CONFIG, "Detach ATH hw\n");
 
-       ath_deinit_leds(sc);
+       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++) {
                struct ath_wiphy *aphy = sc->sec_wiphy[i];
                if (aphy == NULL)