Browse Source

qcacld-3.0: Process STA kickout event only in link established state

Firmware may send STA kickout event even during association. This
change the limSmeState to eLIM_SME_WT_DEAUTH_STATE from
eLIM_SME_WT_ASSOC_STATE. Due to this assoc confirm is not processed
and HDD remains in connecting state and thus all subsequent scans
fails.

Fix this by processing STA kickout event only in
eLIM_MLM_LINK_ESTABLISHED_STATE

Change-Id: I75b4814aade80ca74ef9aef67ecea99a3bc15148
CRs-Fixed: 2012727
Abhishek Singh 8 years ago
parent
commit
9354d69eca
1 changed files with 9 additions and 0 deletions
  1. 9 0
      core/mac/src/pe/lim/lim_link_monitoring_algo.c

+ 9 - 0
core/mac/src/pe/lim/lim_link_monitoring_algo.c

@@ -230,6 +230,15 @@ void lim_delete_sta_context(tpAniSirGlobal mac_ctx,
 	switch (msg->reasonCode) {
 	case HAL_DEL_STA_REASON_CODE_KEEP_ALIVE:
 		if (LIM_IS_STA_ROLE(session_entry) && !msg->is_tdls) {
+			if (session_entry->limMlmState !=
+			    eLIM_MLM_LINK_ESTABLISHED_STATE) {
+				lim_log(mac_ctx, LOGE,
+				  FL("Do not process in limMlmState %s(%x)"),
+				  lim_mlm_state_str(session_entry->limMlmState),
+				  session_entry->limMlmState);
+				qdf_mem_free(msg);
+				return;
+			}
 			sta_ds = dph_get_hash_entry(mac_ctx,
 					DPH_STA_HASH_INDEX_PEER,
 					&session_entry->dph.dphHashTable);