From f82dd790ee0960ec7e8bec344efe62e30889f5a1 Mon Sep 17 00:00:00 2001 From: Pragaspathi Thilagaraj Date: Tue, 13 Jul 2021 17:48:21 +0530 Subject: [PATCH] qcacld-3.0: Update fils erp sequence number after roaming Fils info is stored per vdev. In RSO scan mode command, in FILS TLV, the next ERP sequence number to be used in the next FILS connection is sent to firmware and is filled from the vdev fils info. But after roam sych event is received, the erp sequence number is not updated in the vdev fils info, causing FILS roaming failure. Update the fils erp sequence number to vdev fils info after roaming. Change-Id: Ibc624d9c4b0fc535c430881d3033169b002c8419 CRs-Fixed: 2988113 --- core/sme/src/csr/csr_api_roam.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 6069bc6fefaf..b89fedb141f5 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -20554,12 +20554,20 @@ static void csr_copy_fils_join_rsp_roam_info(struct csr_roam_info *roam_info, * Return: NONE */ static -void csr_update_fils_erp_seq_num(struct csr_roam_profile *roam_profile, +void csr_update_fils_erp_seq_num(struct wlan_objmgr_psoc *psoc, + uint8_t vdev_id, + struct csr_roam_profile *roam_profile, uint16_t erp_next_seq_num) { + struct wlan_fils_connection_info *fils_info; + if (roam_profile->fils_con_info) roam_profile->fils_con_info->erp_sequence_number = erp_next_seq_num; + + fils_info = wlan_cm_get_fils_connection_info(psoc, vdev_id); + if (fils_info) + fils_info->erp_sequence_number = erp_next_seq_num; } #else static inline @@ -20568,7 +20576,9 @@ void csr_copy_fils_join_rsp_roam_info(struct csr_roam_info *roam_info, {} static inline -void csr_update_fils_erp_seq_num(struct csr_roam_profile *roam_profile, +void csr_update_fils_erp_seq_num(struct wlan_objmgr_psoc *psoc, + uint8_t vdev_id, + struct csr_roam_profile *roam_profile, uint16_t erp_next_seq_num) {} #endif @@ -21496,7 +21506,8 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx, roam_info->update_erp_next_seq_num = roam_synch_data->update_erp_next_seq_num; roam_info->next_erp_seq_num = roam_synch_data->next_erp_seq_num; - csr_update_fils_erp_seq_num(session->pCurRoamProfile, + csr_update_fils_erp_seq_num(mac_ctx->psoc, session_id, + session->pCurRoamProfile, roam_info->next_erp_seq_num); sme_debug("Update ERP Seq Num : %d, Next ERP Seq Num : %d", roam_info->update_erp_next_seq_num,