|
@@ -2884,6 +2884,8 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|
|
struct bss_description *bss_desc = NULL;
|
|
|
uint16_t ric_tspec_len;
|
|
|
struct qdf_mac_addr bssid;
|
|
|
+ uint8_t *oui_ie_ptr;
|
|
|
+ uint16_t oui_ie_len;
|
|
|
|
|
|
if (!roam_sync_ind_ptr) {
|
|
|
pe_err("LFR3:roam_sync_ind_ptr is NULL");
|
|
@@ -2999,7 +3001,6 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|
|
/* Next routine may update nss based on dot11Mode */
|
|
|
|
|
|
lim_ft_prepare_add_bss_req(mac_ctx, ft_session_ptr, bss_desc);
|
|
|
- qdf_mem_free(bss_desc);
|
|
|
|
|
|
if (session_ptr->is11Rconnection)
|
|
|
lim_fill_fils_ft(session_ptr, ft_session_ptr);
|
|
@@ -3020,6 +3021,7 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|
|
if (!sta_ds && !is_multi_link_roam(roam_sync_ind_ptr)) {
|
|
|
pe_err("LFR3:failed to lookup hash entry");
|
|
|
ft_session_ptr->bRoamSynchInProgress = false;
|
|
|
+ qdf_mem_free(bss_desc);
|
|
|
goto roam_sync_fail;
|
|
|
}
|
|
|
|
|
@@ -3034,6 +3036,7 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|
|
pe_err("LFR3:failed to add hash entry for "QDF_MAC_ADDR_FMT,
|
|
|
QDF_MAC_ADDR_REF(add_bss_params->staContext.staMac));
|
|
|
ft_session_ptr->bRoamSynchInProgress = false;
|
|
|
+ qdf_mem_free(bss_desc);
|
|
|
goto roam_sync_fail;
|
|
|
}
|
|
|
|
|
@@ -3054,18 +3057,30 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|
|
if (ft_session_ptr->is_unexpected_peer_error)
|
|
|
status = QDF_STATUS_E_FAILURE;
|
|
|
|
|
|
- if (QDF_IS_STATUS_ERROR(status))
|
|
|
+ if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
+ qdf_mem_free(bss_desc);
|
|
|
goto roam_sync_fail;
|
|
|
+ }
|
|
|
} else {
|
|
|
lim_process_assoc_rsp_frame(mac_ctx, reassoc_resp,
|
|
|
roam_sync_ind_ptr->reassoc_resp_length - SIR_MAC_HDR_LEN_3A,
|
|
|
LIM_REASSOC, ft_session_ptr);
|
|
|
if (ft_session_ptr->is_unexpected_peer_error) {
|
|
|
status = QDF_STATUS_E_FAILURE;
|
|
|
+ qdf_mem_free(bss_desc);
|
|
|
goto roam_sync_fail;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ oui_ie_ptr = (uint8_t *)&bss_desc->ieFields[0];
|
|
|
+ oui_ie_len = wlan_get_ielen_from_bss_description(bss_desc);
|
|
|
+ lim_enable_cts_to_self_for_exempted_iot_ap(mac_ctx,
|
|
|
+ ft_session_ptr,
|
|
|
+ oui_ie_ptr, oui_ie_len);
|
|
|
+ qdf_mem_free(bss_desc);
|
|
|
+ oui_ie_len = 0;
|
|
|
+ oui_ie_ptr = NULL;
|
|
|
+
|
|
|
lim_check_ft_initial_im_association(roam_sync_ind_ptr, ft_session_ptr);
|
|
|
|
|
|
lim_copy_and_free_hlp_data_from_session(ft_session_ptr,
|