From ee62a9fdf0d8443a436d21155af5fffbc67a9951 Mon Sep 17 00:00:00 2001 From: Srikanth Marepalli Date: Thu, 1 Feb 2024 16:57:45 +0530 Subject: [PATCH] qcacld-3.0: Reset roaming_in_progress upon VDEV down Currently roaming_in_progress is set during ROAM_START event from firmware and reset after ROAM_SYNC_COMPLETE or ROAM_ABORT or ROAM_HO_FAIL event. But in suspend mode there can be scenario that firmware sends the ROAM_HO_FAIL first being a wakable event, followed by ROAM_START event which is non-wakable. Here the roaming_in_progress bit gets reset and then set. But due to HO_FAIL the host triggers the disconnection. And during this currently the roaming_in_progress is reset during VDEV down in all the cases except HO_FAIL. Hence reset the roaming_in_progress during VDEV down in all cases irrespective of the VDEV stop type. Change-Id: I53428b8a43769ed891bdc3e93b11207fe47a1939 CRs-Fixed: 3745192 --- core/wma/src/wma_dev_if.c | 5 ++++- core/wma/src/wma_utils.c | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 73d883382974..15f3c657a065 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -2214,6 +2214,9 @@ void wma_send_vdev_down(tp_wma_handle wma, struct del_bss_resp *resp) return; } + wma_debug("Reset roaming_in_progress for vdev %d", vdev_id); + wma->interfaces[vdev_id].roaming_in_progress = false; + if (vdev_stop_type != WMA_DELETE_BSS_HO_FAIL_REQ) { if (wma_send_vdev_down_to_fw(wma, vdev_id) != QDF_STATUS_SUCCESS) diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index 11fa4b46823a..e8f10039e0ad 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -3957,8 +3957,6 @@ QDF_STATUS wma_send_vdev_down_to_fw(t_wma_handle *wma, uint8_t vdev_id) return status; } - wma->interfaces[vdev_id].roaming_in_progress = false; - status = vdev_mgr_down_send(vdev_mlme); return status;