From 36de1cca72bfdce645cb1bd549ccd77097009eeb Mon Sep 17 00:00:00 2001 From: Jianmin Zhu Date: Thu, 26 Aug 2021 13:13:37 +0800 Subject: [PATCH] qcacld-3.0: Don't clear roam_invoke_in_progress when receive ROAM_ABORT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After supplicant disabled vdev roaming, only host can invoke roaming. After host invoked roaming, if reassoc failed, F/W aborted roaming and retried roaming, if succeeded, then sent ROAM SYNCH later, but host rejected it since roam_invoke_in_progress is cleared when receive ROAM_ABORT, didn’t send WMI_ROAM_SYNCH_COMPLETE to F/W, F/W asserted after timeout. Fix it by not clearing roam_invoke_in_progress when receive ROAM_ABORT, If host invoked roaming failed, F/W will send roam event WMI_ROAM_REASON_INVOKE_ROAM_FAIL at last, roam_invoke_in_progress will be cleared at that time. Change-Id: Idbbae94f7ad77794f28f5d66dc68b33358d6f49e CRs-Fixed: 3021513 --- core/sme/src/csr/csr_api_roam.c | 1 - 1 file changed, 1 deletion(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 3161f231cd39..5b2f5bb4eecb 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -21077,7 +21077,6 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx, csr_roam_invoke_timer_stop(mac_ctx, session_id); csr_roam_call_callback(mac_ctx, session_id, NULL, 0, eCSR_ROAM_ABORT, eCSR_ROAM_RESULT_SUCCESS); - vdev_roam_params->roam_invoke_in_progress = false; goto end; case SIR_ROAM_SYNCH_NAPI_OFF: csr_roam_call_callback(mac_ctx, session_id, NULL, 0,