From 9028d75166fb6c8d6ea67ad380dc0fd2f3da5b20 Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Mon, 17 Oct 2016 02:00:17 -0400 Subject: 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) --- core/mac/src/pe/lim/lim_process_assoc_req_frame.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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 -- cgit v1.2.3