[PATCH ath-current] wifi: ath12k: Fix scan state stuck in ABORTING after cancel_remain_on_channel

Baochen Qiang baochen.qiang at oss.qualcomm.com
Mon Jan 12 17:34:23 PST 2026



On 1/12/2026 7:55 PM, Yingying Tang wrote:
> Scan finish workqueue was introduced in __ath12k_mac_scan_finish() by [1].
> 
> During ath12k_mac_op_cancel_remain_on_channel(), scan state is set to
> ABORTING and should be reset to IDLE in the queued work. However,
> wiphy_work_cancel() is called before exiting
> ath12k_mac_op_cancel_remain_on_channel(), which prevents the work
> from running and leaves the state in ABORTING. This blocks all
> subsequent scan requests.
> 
> Replace wiphy_work_cancel() with wiphy_work_flush() to ensure the
> queued work runs and scan state is reset to IDLE.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
> 
> Fixes: 3863f014ad23 ("wifi: ath12k: symmetrize scan vdev creation and deletion during HW scan") # [1]
> Signed-off-by: Yingying Tang <yingying.tang at oss.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath12k/mac.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 2f4daee9e2f0..7b72db3193d6 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -13448,7 +13448,7 @@ int ath12k_mac_op_cancel_remain_on_channel(struct ieee80211_hw *hw,
>  	ath12k_scan_abort(ar);
>  
>  	cancel_delayed_work_sync(&ar->scan.timeout);
> -	wiphy_work_cancel(hw->wiphy, &ar->scan.vdev_clean_wk);
> +	wiphy_work_flush(hw->wiphy, &ar->scan.vdev_clean_wk);
>  
>  	return 0;
>  }
> --
> base-commit: d0309c054362a235077327b46f727bc48878a3bc
> 
> 

Reviewed-by: Baochen Qiang <baochen.qiang at oss.qualcomm.com>




More information about the ath12k mailing list