From 9bb8c487cc78990b5b4754c6662eb10ae5cbec27 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Wed, 20 May 2020 11:38:21 +0530 Subject: [PATCH] qcacld-3.0: Allow driver to process roam sync ind in RSO STOPPED state Supplicant disables fast roaming (by making isFastRoamEnabled = 0) before sending ROAM_INVOKE_CMD to host. This results roaming state of host changes to ROAM_RSO_STOPPED before start processing ROAM_INVOKE_CMD command. Due to commit : Id0ea18a33dfef3d4e9a4003da33fc7172cf58e85, Host unable to process roam sync indication event if supplicant disable fast roaming before sending ROAM INVOKE command. This leads to roaming failure. Fix is to allow driver to process roam sync indication even in RSO stopped state, if roaming triggered by userspace. Change-Id: Ia5f5c7b078d457280bce8c24110f01a3be26c3d6 CRs-Fixed: 2670060 --- core/sme/src/csr/csr_api_roam.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index ac7eef6423..e30abeb64f 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -20812,7 +20812,8 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx, csr_roam_roaming_offload_timer_action(mac_ctx, 0, session_id, ROAMING_OFFLOAD_TIMER_STOP); if (session->discon_in_progress || - MLME_IS_ROAM_STATE_STOPPED(mac_ctx->psoc, session_id) || + (MLME_IS_ROAM_STATE_STOPPED(mac_ctx->psoc, session_id) && + !vdev_roam_params->roam_invoke_in_progress) || !CSR_IS_ROAM_JOINED(mac_ctx, session_id)) { QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, FL("LFR3: Session not in connected state or disconnect is in progress %d"),