qcacld-3.0: Don't check for association status to flush mc list

Kernel configures mc address list once association/NDP connection
happens. Host driver flushes the existing list whenever a new list
is received from kernel. Also, it's expected to cleanup the final
list as part of disconnection/NDI cleanup.
Currently, host expects the vdev/NDI state to be ASSOCIATED
in-order to flush the final configured list. But the STA vdev/NDI
state is already moved to DISCONNECTED by the time host tries to
flush the list from firmware. So, host doesn't send flush command
to firmware and it just flushes internal list from driver adapter.

This results in leaving the final configured entries uncleaned
in firmware and the mc list exhausts in few such iterations as the
firmware supports limited size(32).

Don't check for vdev/NDI state and always issue flush command to
firmware as part of disconnect to avoid this.

Change-Id: I8e070f40976a147959783b3c44f1e9aa24563d4b
CRs-Fixed: 3776542
Cette révision appartient à :
Srinivas Dasari
2024-04-03 19:56:29 +05:30
révisé par Ravindra Konda
Parent 181522c877
révision 6aa9cdf391
2 fichiers modifiés avec 1 ajouts et 14 suppressions

Voir le fichier

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-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
@@ -558,11 +558,6 @@ QDF_STATUS pmo_core_disable_mc_addr_filtering_in_fwr(
if (status != QDF_STATUS_SUCCESS)
goto put_ref;
if (wlan_vdev_is_up(vdev) != QDF_STATUS_SUCCESS) {
status = QDF_STATUS_E_INVAL;
goto put_ref;
}
pmo_debug("disable mclist trigger: %d", trigger);
status = pmo_core_handle_disable_mc_list_trigger(vdev, trigger);