summaryrefslogtreecommitdiff
path: root/core/mac/src
diff options
context:
space:
mode:
authorLiangwei Dong <liangwei@codeaurora.org>2016-10-17 02:00:17 -0400
committerqcabuildsw <qcabuildsw@localhost>2016-10-28 18:03:56 -0700
commit9028d75166fb6c8d6ea67ad380dc0fd2f3da5b20 (patch)
treeb6244095f19e8a42babd035d9e9388f337a64e6d /core/mac/src
parentb3f26cc4f5833624a224e0047d40cdf23f2a98f2 (diff)
qcacld-3.0: Fix invalid peer create after vdev down
qcacld-2.0 to qcacld-3.0 propagation In a SNS case, driver receives ASSOC Req during the SAP Stopping. The SAP stopping will issue WMI_VDEV_DOWN_CMDID WMI command to firmware. And ASSOC req frame processing will issue a WMI_PEER_CREATE_CMDID WMI command to firmware. Then the firmware crash happens because firmware can't find the necessary BSS information to create the peer. Firmware doesn't support peer create after BSS down. The fix is to ignore the ASSOC Req frame while the deleting BSS is ongoing. Change-Id: Ib517642da4fc6b4778ef1ce4e6afd92fa3edb112 CRs-Fixed: 1053809 (cherry picked from commit 2118b5d37d9294a22cff60ec5bd2b7baf4a34cae)
Diffstat (limited to 'core/mac/src')
-rw-r--r--core/mac/src/pe/lim/lim_process_assoc_req_frame.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
index 5d7fe2487091..69f2d9b41b05 100644
--- a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
+++ b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
@@ -1775,6 +1775,15 @@ void lim_process_assoc_req_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
WMA_GET_RX_MPDU_DATA(rx_pkt_info), frame_len);
return;
}
+ if (session->limMlmState == eLIM_MLM_WT_DEL_BSS_RSP_STATE) {
+ lim_log(mac_ctx, LOGE, FL("drop ASSOC REQ on sessionid: %d "
+ "role=%d from: "MAC_ADDRESS_STR" in limMlmState %d"),
+ session->peSessionId,
+ GET_LIM_SYSTEM_ROLE(session),
+ MAC_ADDR_ARRAY(hdr->sa),
+ eLIM_MLM_WT_DEL_BSS_RSP_STATE);
+ return;
+ }
/*
* If a STA is already present in DPH and it is initiating a Assoc