summaryrefslogtreecommitdiff
path: root/core/mac/src
diff options
context:
space:
mode:
authorVarun Reddy Yeturu <varunreddy.yeturu@codeaurora.org>2018-08-07 14:45:31 -0700
committernshrivas <nshrivas@codeaurora.org>2018-08-31 06:49:12 -0700
commit22df739883d9004717b957744ba5cb0ebd3770ae (patch)
tree60f61759d0bafaa9f75fc2d4a9a035bb2923d056 /core/mac/src
parenta661dccf0e7d03022ed89f11e8bd334da40ea26e (diff)
qcacld-3.0: Do not attempt to delete peer when it is not created
In preassoc state, if the set link state has failed to create the peer, then send back a failure status to the upper layers and ensure that the set link state for failure is not called again because this will eventually call vdev stop and lead to a vdev stop response and then lead to a peer delete attempt which is really not needed since the peer has not been created at all. Change-Id: I265726000204bab51c429a2d00cdd599d8064170 CRs-Fixed: 2286684
Diffstat (limited to 'core/mac/src')
-rw-r--r--core/mac/src/pe/lim/lim_process_mlm_req_messages.c2
-rw-r--r--core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
index 9af8233c980f..e524420c93d0 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
@@ -814,7 +814,7 @@ failure:
MTRACE(mac_trace(mac, TRACE_CODE_MLM_STATE, session_entry->peSessionId,
session_entry->limMlmState));
session_entry->limMlmState = eLIM_MLM_IDLE_STATE;
- mlm_join_cnf.resultCode = eSIR_SME_RESOURCES_UNAVAILABLE;
+ mlm_join_cnf.resultCode = eSIR_SME_PEER_CREATE_FAILED;
mlm_join_cnf.sessionId = session_entry->peSessionId;
mlm_join_cnf.protStatusCode = eSIR_MAC_UNSPEC_FAILURE_STATUS;
lim_post_sme_message(mac, LIM_MLM_JOIN_CNF, (uint32_t *) &mlm_join_cnf);
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 f5f1597e0a6f..dc457fa318a8 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
@@ -1365,8 +1365,14 @@ void lim_handle_sme_join_result(tpAniSirGlobal mac_ctx,
session_entry->pLimJoinReq = NULL;
}
error:
- /* Delete the session if JOIN failure occurred. */
- if (result_code != eSIR_SME_SUCCESS) {
+ /* Delete the session if JOIN failure occurred.
+ * if the peer is not created, then there is no
+ * need to send down the set link state which will
+ * try to delete the peer. Instead a join response
+ * failure should be sent to the upper layers.
+ */
+ if (result_code != eSIR_SME_SUCCESS &&
+ result_code != eSIR_SME_PEER_CREATE_FAILED) {
param = qdf_mem_malloc(sizeof(join_params));
if (param != NULL) {
param->result_code = result_code;