diff options
| author | Varun Reddy Yeturu <varunreddy.yeturu@codeaurora.org> | 2016-09-23 11:10:42 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-07 11:32:45 -0800 |
| commit | 5a14fce4e5e747888dad578941b8b9d8564e6bba (patch) | |
| tree | ca9b24d3ae225606bb784d581033aed124c1b8ef | |
| parent | 9181ccdce0c2ba9f267df09dd5e7b22e58c75bff (diff) | |
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
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c | 5 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_sme_req_messages.c | 14 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_messages.h | 2 |
3 files changed, 15 insertions, 6 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 ba383a8bbf49..c462cccbec3d 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 @@ -53,8 +53,6 @@ #define MAX_SUPPORTED_PEERS_WEP 16 -static void lim_handle_sme_join_result(tpAniSirGlobal, tSirResultCodes, uint16_t, - tpPESession); void lim_process_mlm_join_cnf(tpAniSirGlobal, uint32_t *); void lim_process_mlm_auth_cnf(tpAniSirGlobal, uint32_t *); void lim_process_mlm_start_cnf(tpAniSirGlobal, uint32_t *); @@ -1341,8 +1339,7 @@ void lim_process_mlm_set_keys_cnf(tpAniSirGlobal pMac, uint32_t *pMsgBuf) * * Return: None */ -static void -lim_handle_sme_join_result(tpAniSirGlobal mac_ctx, +void lim_handle_sme_join_result(tpAniSirGlobal mac_ctx, tSirResultCodes result_code, uint16_t prot_status_code, tpPESession session_entry) { 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 1d545e553421..2343bdd28cb9 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 @@ static void __lim_process_sme_reassoc_req(tpAniSirGlobal mac_ctx, 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 */ diff --git a/core/mac/src/pe/lim/lim_send_messages.h b/core/mac/src/pe/lim/lim_send_messages.h index 187c1aeaddf1..c5c00d0e642f 100644 --- a/core/mac/src/pe/lim/lim_send_messages.h +++ b/core/mac/src/pe/lim/lim_send_messages.h @@ -106,4 +106,6 @@ tSirRetStatus lim_send_exclude_unencrypt_ind(tpAniSirGlobal pMac, #endif tSirRetStatus lim_send_ht40_obss_scanind(tpAniSirGlobal mac_ctx, tpPESession session); +void lim_handle_sme_join_result(tpAniSirGlobal, + tSirResultCodes, uint16_t, tpPESession); #endif |
