From 632d736aa2bba0f9d4a6eed19ca705f08f546172 Mon Sep 17 00:00:00 2001 From: Surya Prakash Sivaraj Date: Tue, 16 May 2023 11:08:19 +0530 Subject: [PATCH] qcacld-3.0: Update channel before user space update As part of roaming, roamed event is sent to the userspace. This marks the end of roaming and userspace begins CSI restart for the new BSS. But, the channel information of the new BSS is not yet updated to the vdev. This leads to sending wrong channel in the for CFR capture. To fix this, update the channel info of the new BSS before sending userspace update. Change-Id: I3af5aadf6041e56f2261aaebd7d2c1a108f63c65 CRs-Fixed: 3500062 --- core/wma/src/wma_scan_roam.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 409c88336202..702063ef6170 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -1398,16 +1398,6 @@ int wma_mlme_roam_synch_event_handler_cb(void *handle, uint8_t *event, wma_roam_update_vdev(wma, roam_synch_ind_ptr); - if (QDF_IS_STATUS_ERROR(wma->csr_roam_synch_cb(wma->mac_context, - roam_synch_ind_ptr, - bss_desc_ptr, SIR_ROAM_SYNCH_PROPAGATION))) { - wma_err("CSR roam synch propagation failed, abort roam"); - status = -EINVAL; - goto cleanup_label; - } - - wma_process_roam_synch_complete(wma, synch_event->vdev_id); - /* update freq and channel width */ wma->interfaces[synch_event->vdev_id].ch_freq = roam_synch_ind_ptr->chan_freq; @@ -1426,6 +1416,16 @@ int wma_mlme_roam_synch_event_handler_cb(void *handle, uint8_t *event, param_buf->chan, &wma->interfaces[synch_event->vdev_id]); + if (QDF_IS_STATUS_ERROR(wma->csr_roam_synch_cb(wma->mac_context, + roam_synch_ind_ptr, + bss_desc_ptr, SIR_ROAM_SYNCH_PROPAGATION))) { + wma_err("CSR roam synch propagation failed, abort roam"); + status = -EINVAL; + goto cleanup_label; + } + + wma_process_roam_synch_complete(wma, synch_event->vdev_id); + wma->csr_roam_synch_cb(wma->mac_context, roam_synch_ind_ptr, bss_desc_ptr, SIR_ROAM_SYNCH_COMPLETE); wma->interfaces[synch_event->vdev_id].roam_synch_delay =