From a9c1b38b622ab7b64aff15cd8c0255a4fdf17dbd Mon Sep 17 00:00:00 2001 From: Jianmin Zhu Date: Tue, 26 Nov 2019 20:49:01 +0800 Subject: [PATCH] qcacld-3.0: Failed to add PMF required AP into LFR3 channel map PMF info isn't filled in scan filter when find AP in scan cache to build LFR3 channel map. Change-Id: Ibacf0ee6534298415f97fc42e5223b7d85f203e0 CRs-Fixed: 2571777 --- core/sme/inc/csr_api.h | 17 +++++++++++++++++ core/sme/src/csr/csr_api_scan.c | 1 + core/sme/src/csr/csr_neighbor_roam.c | 7 +------ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 8df6941a259a..bdc412a1e837 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1486,4 +1486,21 @@ csr_send_roam_offload_init_msg(struct mac_context *mac, uint32_t vdev_id, typedef void (*csr_ani_callback)(int8_t *ani, void *context); +#ifdef WLAN_FEATURE_11W +/** + * csr_update_pmf_cap_from_connected_profile() - Update pmf cap from profile + * @profile: connected profile + * @filter: scan filter + * + * Return: None + */ +void +csr_update_pmf_cap_from_connected_profile(tCsrRoamConnectedProfile *profile, + struct scan_filter *filter); +#else +inline void +csr_update_pmf_cap_from_connected_profile(tCsrRoamConnectedProfile *profile, + struct scan_filter *filter) +{} +#endif #endif diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index c3b3ea13872c..595fe6e63c8d 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -2778,6 +2778,7 @@ void csr_init_occupied_channels_list(struct mac_context *mac_ctx, filter->ssid_list[0].length = profile->SSID.length; qdf_mem_copy(filter->ssid_list[0].ssid, profile->SSID.ssId, profile->SSID.length); + csr_update_pmf_cap_from_connected_profile(profile, filter); pdev = wlan_objmgr_get_pdev_by_id(mac_ctx->psoc, 0, WLAN_LEGACY_MAC_ID); diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 238392729ed7..847963e8a418 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -324,7 +324,7 @@ static void csr_neighbor_roam_reset_init_state_control_info(struct mac_context * } #ifdef WLAN_FEATURE_11W -static void +void csr_update_pmf_cap_from_connected_profile(tCsrRoamConnectedProfile *profile, struct scan_filter *filter) { @@ -333,11 +333,6 @@ csr_update_pmf_cap_from_connected_profile(tCsrRoamConnectedProfile *profile, if (profile->MFPRequired) filter->pmf_cap = WLAN_PMF_REQUIRED; } -#else -static inline void -csr_update_pmf_cap_from_connected_profile(tCsrRoamConnectedProfile *profile, - struct scan_filter *filter) -{} #endif QDF_STATUS