Переглянути джерело

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
Ganesh Kondabattini 8 роки тому
батько
коміт
520a83deeb
1 змінених файлів з 25 додано та 19 видалено
  1. 25 19
      core/mac/src/pe/lim/lim_assoc_utils.c

+ 25 - 19
core/mac/src/pe/lim/lim_assoc_utils.c

@@ -2587,29 +2587,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 */