qcacld-3.0: Handle Reassociation request failure
qcacld-2.0 to qcacld-3.0 propagation
If pre-authentication is successful and the reassoc request
comes with an invalid BSSID, then clean up the PE session and
then clean up the upper layers like SME and HDD.
CRs-Fixed: 970551
Change-Id: Idb0ce24f4cb4e1f3dd02c3691e1698441b7606ce
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index 1d545e5..2343bdd 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -2101,11 +2101,21 @@
reassoc_req->bssDescription.bssId,
&session_id);
if (session_entry == NULL) {
- lim_print_mac_addr(mac_ctx, reassoc_req->bssDescription.bssId,
- LOGE);
lim_log(mac_ctx, LOGE,
FL("Session does not exist for given bssId"));
+ lim_print_mac_addr(mac_ctx, reassoc_req->bssDescription.bssId,
+ LOGE);
ret_code = eSIR_SME_INVALID_PARAMETERS;
+ lim_get_session_info(mac_ctx, (uint8_t *)msg_buf,
+ &sme_session_id, &transaction_id);
+ session_entry =
+ pe_find_session_by_sme_session_id(mac_ctx,
+ sme_session_id);
+ if (session_entry != NULL)
+ lim_handle_sme_join_result(mac_ctx,
+ eSIR_SME_INVALID_PARAMETERS,
+ eSIR_MAC_UNSPEC_FAILURE_STATUS,
+ session_entry);
goto end;
}
#ifdef FEATURE_WLAN_DIAG_SUPPORT /* FEATURE_WLAN_DIAG_SUPPORT */