[PATCH] wifi: ath12k: Abort scan before removing link interface to prevent duplicate deletion
Lingbo Kong
quic_lingbok at quicinc.com
Fri Feb 7 01:04:58 PST 2025
On 2025/1/24 17:33, Lingbo Kong wrote:
> Currently, when ath12k performs the remove link interface operation, if
> there is an ongoing scan operation on the arvif, ath12k may execute the
> remove link interface operation multiple times on the same arvif. This
> occurs because, during the remove link operation, if a scan operation is
> present on the arvif, ath12k may receive a WMI_SCAN_EVENT_COMPLETED event
> from the firmware. Upon receiving this event, ath12k will continue to
> execute the ath12k_scan_vdev_clean_work() function, performing the remove
> link interface operation on the same arvif again.
>
> To address this issue, before executing the remove link interface
> operation, ath12k needs to check if there is an ongoing scan operation on
> the current arvif. If such an operation exists, it should be aborted.
>
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>
> Signed-off-by: Lingbo Kong <quic_lingbok at quicinc.com>
> ---
> drivers/net/wireless/ath/ath12k/mac.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 329c05003721..cdce88787182 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -9333,6 +9333,11 @@ ath12k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
> ar->num_started_vdevs == 1 && ar->monitor_vdev_created)
> ath12k_mac_monitor_stop(ar);
>
> + if (ar->scan.arvif == arvif && ar->scan.state == ATH12K_SCAN_RUNNING) {
> + ath12k_scan_abort(ar);
> + ar->scan.arvif = NULL;
> + }
> +
> ath12k_mac_remove_link_interface(hw, arvif);
> ath12k_mac_unassign_link_vif(arvif);
> }
>
> base-commit: 376673aa393c1c232299be3e910d7f2e6d974b2f
hi jeff,
do you have any updates on this patch?🙂
/lingbo
More information about the ath12k
mailing list