summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2013-06-20 17:35:12 +0400
committerEliad Peller <eliad@wizery.com>2013-07-22 14:01:48 +0400
commit0b731d502647f848e30946369913f9c38b8fc2d8 (patch)
treef534bcfe3b5664650a6cc91e003194a35a2b5982
parent8cfe96a0107b4667fc6026becb4ce50a55bc89b7 (diff)
downloadwl18xx-0b731d502647f848e30946369913f9c38b8fc2d8.tar.xz
wlcore: croc before stopping ap role
commit 8d3dc8a ("wlcore: ROC on AP channel before auth reply") might cause us to ROC on the AP channel. Stopping the role in this stage, without CROC, can result in a fw crash. Make sure to CROC in this case. Signed-off-by: Eliad Peller <eliad@wizery.com>
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 6fca0dd3ff4..138d340bef5 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -4153,6 +4153,13 @@ static void wl1271_bss_info_changed_ap(struct wl1271 *wl,
}
} else {
if (test_bit(WLVIF_FLAG_AP_STARTED, &wlvif->flags)) {
+ /*
+ * AP might be in ROC in case we have just
+ * sent auth reply. handle it.
+ */
+ if (test_bit(wlvif->role_id, wl->roc_map))
+ wl12xx_croc(wl, wlvif->role_id);
+
ret = wl12xx_cmd_role_stop_ap(wl, wlvif);
if (ret < 0)
goto out;