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
This commit is contained in:
Srikanth Marepalli 2024-02-01 16:57:45 +05:30 • committed by Ravindra Konda
commit ee62a9fdf0
2 changed files with 5 additions and 4 deletions

View file

@ -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)

View file

@ -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;