From d19387e67626b4b25ad4e9e7a7de8cc772a686db Mon Sep 17 00:00:00 2001 From: Deeksha Gupta Date: Mon, 21 Feb 2022 16:52:22 +0530 Subject: [PATCH] qcacld-3.0: Remove roam_invoke_timer stop in case of ROAM_ABORT Currently, for gEnableNUDTracking=3 ini, if NUD failure happens, host sends the ROAM_INVOKE_CMD to fw and start the roam_invoke timer and after roam_timer timeout or ROAM_INVOKE_FAIL host sends disconnect. Suppose in response, fw sends ROAM_START and ROAM_ABORT before sending ROAM_INVOKE_FAIL, then host stops roam_invoke timer in ROAM_ABORT case. Due to this, in ROAM_INVOKE_FAIL host doesn't find timer and returns failure without sending disconnect. Fix is, remove the roam_invoke timer stop in case of ROAM_ABORT and add it in north and south bound disconnect. Change-Id: I6b7790f1e59d137c1476a8ad80fc4f113e86e580 CRs-Fixed: 3132545 --- core/sme/src/csr/csr_api_roam.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index a671bf1620a7..b187a7aa42e0 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -16854,6 +16854,11 @@ static void csr_roam_link_down(struct mac_context *mac, uint32_t sessionId) eCSR_ROAM_LOSTLINK, eCSR_ROAM_RESULT_LOSTLINK); } + + /* In case of STA mode disconnect, stop the roam_invoke timer */ + if (csr_roam_is_sta_mode(mac, sessionId)) + csr_roam_invoke_timer_stop(mac, sessionId); + /* Indicate the neighbor roal algorithm about the disconnect * indication */ @@ -21207,7 +21212,6 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx, REASON_ROAM_ABORT); csr_roam_roaming_offload_timer_action(mac_ctx, 0, session_id, ROAMING_OFFLOAD_TIMER_STOP); - 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); goto end;