summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanumanth Reddy Pothula <c_hpothu@qti.qualcomm.com>2016-09-12 14:35:03 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-11-29 16:07:32 -0800
commitb809194baccaf9a09f3f7c1c0cf2489259a73243 (patch)
tree4edbe4b7349569b644c1ee6cef6f3d35431c6803
parent6022d5827974fe96a71c0c78c9d0ba62c8f3e7ef (diff)
qcacld-3.0: Do DEL_STA if driver gets deauth during ADD_STA
qcacld-2.0 to qcacld-3.0 propagation Add new resultCode, 'eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA', to make sure driver does DEL_STA follwed by DEL_BSS, if driver receives DEAUTH frame when it's waiting for ADD_STA_RSP. Change-Id: I697a8bf4e4f4d8b1063ad660395cea33031f1647 CRs-Fixed: 599416
-rw-r--r--core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
index 6015c96b99a7..5303a9019587 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
@@ -691,9 +691,21 @@ void lim_process_mlm_assoc_cnf(tpAniSirGlobal mac_ctx,
}
if (((tLimMlmAssocCnf *) msg)->resultCode != eSIR_SME_SUCCESS) {
/* Association failure */
- lim_log(mac_ctx, LOG1, FL("SessionId:%d Association failure"),
- session_entry->peSessionId);
- session_entry->limSmeState = eLIM_SME_JOIN_FAILURE_STATE;
+ lim_log(mac_ctx, LOG1, FL("SessionId:%d Association failure resultCode: %d limSmeState:%d"),
+ session_entry->peSessionId,
+ ((tLimMlmAssocCnf *) msg)->resultCode,
+ session_entry->limSmeState);
+
+ /* If driver gets deauth when its waiting for ADD_STA_RSP then
+ * we need to do DEL_STA followed by DEL_BSS. So based on below
+ * reason-code here we decide whether to do only DEL_BSS or
+ * DEL_STA + DEL_BSS.
+ */
+ if (((tLimMlmAssocCnf *) msg)->resultCode !=
+ eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA)
+ session_entry->limSmeState =
+ eLIM_SME_JOIN_FAILURE_STATE;
+
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
session_entry->peSessionId, mac_ctx->lim.gLimSmeState));
/*