summaryrefslogtreecommitdiff
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2012-07-10 10:45:01 +0300
committerLuciano Coelho <coelho@ti.com>2012-07-18 15:08:21 +0300
commit42066f9a5ffc212ec0ff5c23ed2fb92464191543 (patch)
treea4d7f25f6b51a6be182e22dae39e32690cf270c2 /drivers/net/wireless
parent602c7595a1560c0dea795759193b6e3a6246ea31 (diff)
wlcore: don't issue SLEEP_AUTH command during recovery
During interface removal, don't adjust sleep_auth if we are during recovery. Since the FW is potentially dead we shouldn't talk to it. Reported-by: Yossi Wortzel <yossiw@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index d486eeaf722b..05c3912c3e4a 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -2377,7 +2377,14 @@ deinit:
else
wl->sta_count--;
- /* Last AP, have more stations. Configure according to STA. */
+ /*
+ * Last AP, have more stations. Configure sleep auth according to STA.
+ * Don't do thin on unintended recovery.
+ */
+ if (test_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags) &&
+ !test_bit(WL1271_FLAG_INTENDED_FW_RECOVERY, &wl->flags))
+ goto unlock;
+
if (wl->ap_count == 0 && is_ap && wl->sta_count) {
u8 sta_auth = wl->conf.conn.sta_sleep_auth;
/* Configure for power according to debugfs */
@@ -2391,6 +2398,7 @@ deinit:
wl1271_acx_sleep_auth(wl, WL1271_PSM_ELP);
}
+unlock:
mutex_unlock(&wl->mutex);
del_timer_sync(&wlvif->rx_streaming_timer);