diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 4689bec7fff1..6ea2560c0335 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -18795,6 +18795,9 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx, else csr_roam_reset_roam_params(mac_ctx); req_buf->RoamScanOffloadEnabled = 0; + } else if (command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) { + req_buf->RoamScanOffloadEnabled = + roam_info->b_roam_scan_offload_started; } else { req_buf->RoamScanOffloadEnabled = mac_ctx->roam.configParam.isRoamOffloadScanEnabled; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 9977188af1c9..1fc55b81ed07 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -1432,8 +1432,9 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, qdf_mem_free(roam_req); return QDF_STATUS_E_PERM; } - WMA_LOGD("%s: RSO Command:%d, reason:%d session ID %d", __func__, - roam_req->Command, roam_req->reason, roam_req->sessionId); + WMA_LOGD("%s: RSO Command:%d, reason:%d session ID %d en %d", __func__, + roam_req->Command, roam_req->reason, roam_req->sessionId, + roam_req->RoamScanOffloadEnabled); wma_handle->interfaces[roam_req->sessionId].roaming_in_progress = false; switch (roam_req->Command) { case ROAM_SCAN_OFFLOAD_START: @@ -1713,18 +1714,18 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, case ROAM_SCAN_OFFLOAD_UPDATE_CFG: wma_handle->suitable_ap_hb_failure = false; - wma_roam_scan_fill_scan_params(wma_handle, pMac, roam_req, - &scan_params); - qdf_status = - wma_roam_scan_offload_mode(wma_handle, &scan_params, - roam_req, - WMI_ROAM_SCAN_MODE_NONE, - roam_req->sessionId); - if (qdf_status != QDF_STATUS_SUCCESS) - break; - if (roam_req->RoamScanOffloadEnabled == false) - break; + if (roam_req->RoamScanOffloadEnabled) { + wma_roam_scan_fill_scan_params(wma_handle, pMac, + roam_req, &scan_params); + qdf_status = + wma_roam_scan_offload_mode( + wma_handle, &scan_params, roam_req, + WMI_ROAM_SCAN_MODE_NONE, + roam_req->sessionId); + if (qdf_status != QDF_STATUS_SUCCESS) + break; + } qdf_status = wma_roam_scan_bmiss_cnt(wma_handle, roam_req->RoamBmissFirstBcnt, @@ -1797,6 +1798,9 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, if (qdf_status != QDF_STATUS_SUCCESS) break; + if (!roam_req->RoamScanOffloadEnabled) + break; + wma_roam_scan_fill_scan_params(wma_handle, pMac, roam_req, &scan_params); qdf_status =