From c9e8bac0537bebf097fb0e41e9aaec1856bea570 Mon Sep 17 00:00:00 2001 From: Ganesh Kondabattini Date: Tue, 14 Mar 2017 20:02:34 +0530 Subject: qcacld-3.0: Don't change the limSmeState for tdls peer For TDLS peer delete, mlme changes the limSmeState of STA session to eLIM_MLM_WT_DEL_STA_RSP_STATE. This leads to not sending vdev down to FW for STA interface as psessionEntry->limMlmState is not in eLIM_MLM_LINK_ESTABLISHED_STATE. CRs-Fixed: 2019041 Change-Id: I0707eabc8f4cf2571996d8ef2d6d621e01bcbb39 --- core/mac/src/pe/lim/lim_assoc_utils.c | 44 ++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index eeed5485a500..26c33c4a993c 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -2585,29 +2585,35 @@ lim_del_sta(tpAniSirGlobal pMac, if (!fRespReqd) pDelStaParams->respReqd = 0; else { - /* when lim_del_sta is called from processSmeAssocCnf then mlmState is already set properly. */ - if (eLIM_MLM_WT_ASSOC_DEL_STA_RSP_STATE != - GET_LIM_STA_CONTEXT_MLM_STATE(pStaDs)) { - MTRACE(mac_trace - (pMac, TRACE_CODE_MLM_STATE, - psessionEntry->peSessionId, - eLIM_MLM_WT_DEL_STA_RSP_STATE)); - SET_LIM_STA_CONTEXT_MLM_STATE(pStaDs, - eLIM_MLM_WT_DEL_STA_RSP_STATE); - } - if (LIM_IS_STA_ROLE(psessionEntry)) { - MTRACE(mac_trace - (pMac, TRACE_CODE_MLM_STATE, - psessionEntry->peSessionId, - eLIM_MLM_WT_DEL_STA_RSP_STATE)); + if (pStaDs->staType != STA_ENTRY_TDLS_PEER) { + /* when lim_del_sta is called from processSmeAssocCnf + * then mlmState is already set properly. */ + if (eLIM_MLM_WT_ASSOC_DEL_STA_RSP_STATE != + GET_LIM_STA_CONTEXT_MLM_STATE(pStaDs)) { + MTRACE(mac_trace + (pMac, TRACE_CODE_MLM_STATE, + psessionEntry->peSessionId, + eLIM_MLM_WT_DEL_STA_RSP_STATE)); + SET_LIM_STA_CONTEXT_MLM_STATE(pStaDs, + eLIM_MLM_WT_DEL_STA_RSP_STATE); + } + if (LIM_IS_STA_ROLE(psessionEntry)) { + MTRACE(mac_trace + (pMac, TRACE_CODE_MLM_STATE, + psessionEntry->peSessionId, + eLIM_MLM_WT_DEL_STA_RSP_STATE)); - psessionEntry->limMlmState = - eLIM_MLM_WT_DEL_STA_RSP_STATE; + psessionEntry->limMlmState = + eLIM_MLM_WT_DEL_STA_RSP_STATE; + } } - pDelStaParams->respReqd = 1; - /* we need to defer the message until we get the response back from HAL. */ + + /* we need to defer the message until we get the + * response back from HAL. */ SET_LIM_PROCESS_DEFD_MESGS(pMac, false); + + pDelStaParams->respReqd = 1; } /* Update PE session ID */ -- cgit v1.2.3