ath9k: fix a chip wakeup related crash in ath9k_start
authorFelix Fietkau <nbd@openwrt.org>
Fri, 25 Mar 2011 16:43:41 +0000 (17:43 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Mar 2011 19:42:01 +0000 (15:42 -0400)
When the chip is still asleep when ath9k_start is called,
ath9k_hw_configpcipowersave can trigger a data bus error.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/main.c

index 524825720a09dfcb930d132109ad1cef6391670e..dddb85de622d2ea253152032ec8edf86df475754 100644 (file)
@@ -1048,6 +1048,8 @@ static int ath9k_start(struct ieee80211_hw *hw)
                "Starting driver with initial channel: %d MHz\n",
                curchan->center_freq);
 
+       ath9k_ps_wakeup(sc);
+
        mutex_lock(&sc->mutex);
 
        /* setup initial channel */
@@ -1143,6 +1145,8 @@ static int ath9k_start(struct ieee80211_hw *hw)
 mutex_unlock:
        mutex_unlock(&sc->mutex);
 
+       ath9k_ps_restore(sc);
+
        return r;
 }