diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 86aa5948f726..539e3d7104ad 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -516,7 +516,6 @@ struct csr_roam_session { struct qdf_mac_addr self_mac_addr; eCsrConnectState connectState; - struct rsn_caps rsn_caps; tCsrRoamConnectedProfile connectedProfile; struct csr_roam_connectedinfo connectedInfo; struct csr_roam_connectedinfo prev_assoc_ap_info; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index d3bf95e38ee9..d02f25c76ab9 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -17257,6 +17257,23 @@ csr_add_ch_lst_from_roam_scan_list(struct mac_context *mac_ctx, return QDF_STATUS_SUCCESS; } +static void +csr_rso_command_fill_rsn_caps(struct mac_context *mac_ctx, uint8_t vdev_id, + uint16_t *rsn_caps) +{ + struct wlan_objmgr_vdev *vdev; + + vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc, vdev_id, + WLAN_LEGACY_SME_ID); + if (!vdev) { + sme_err("Invalid vdev"); + return; + } + + *rsn_caps = wlan_crypto_get_param(vdev, WLAN_CRYPTO_PARAM_RSN_CAP); + wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID); +} + #ifdef WLAN_FEATURE_11W /** * csr_rso_command_fill_11w_params() - Fill the 11w related parameters @@ -17283,7 +17300,7 @@ csr_rso_command_fill_11w_params(struct mac_context *mac_ctx, session_id, WLAN_LEGACY_SME_ID); if (!vdev) { - pe_err("Invalid vdev"); + sme_err("Invalid vdev"); return; } @@ -17473,9 +17490,10 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx, req_buf->ConnectedNetwork.mcencryption = mac_ctx->roam.roamSession[session_id]. connectedProfile.mcEncryptionType; - /* Copy the RSN capabilities in roam offload request from session*/ - req_buf->rsn_caps = session->rsn_caps; + /* Copy the self RSN capabilities in roam offload request */ + csr_rso_command_fill_rsn_caps(mac_ctx, session_id, + (uint16_t *)&req_buf->rsn_caps); csr_rso_command_fill_11w_params(mac_ctx, session_id, req_buf); req_buf->delay_before_vdev_stop =