Browse Source

qcacld-3.0: Handle deauth received on link vdev

AP sends deauth on link vdev, triggering a disconnect on link vdev
followed by assoc link vdev. The smeState is not updated for assoc
link vdev resulting in host not sending Peer delete and vdev stop/down
commands to fw.
To solve this if deauth or disassoc is received on link vdev
update the smeState.

Change-Id: I1ec834118642c82ab05b752b0bc343959b651072
CRs-Fixed: 3247801
Amruta Kulkarni 2 years ago
parent
commit
4f7f5a20b7
1 changed files with 7 additions and 0 deletions
  1. 7 0
      core/mac/src/pe/lim/lim_process_sme_req_messages.c

+ 7 - 0
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -4279,6 +4279,13 @@ static void lim_process_sb_disconnect_req(struct mac_context *mac_ctx,
 	struct scheduler_msg msg = {0};
 	struct disassoc_cnf disassoc_cnf = {0};
 
+	/* For SB disconnect smeState should be in Deauth state
+	 * One scenario where the smeState is not updated is when
+	 * AP sends deauth on link vdev and disconnect req is triggered
+	 */
+	if (pe_session->limSmeState == eLIM_SME_LINK_EST_STATE)
+		pe_session->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
+
 	if (pe_session->limSmeState == eLIM_SME_WT_DEAUTH_STATE)
 		disassoc_cnf.messageType = eWNI_SME_DEAUTH_CNF;
 	else