Re: [PATCH ath-next v2 6/8] wifi: ath10k: hard-block the radio when entering WEDGED state

From: Loic Poulain

Date: Wed Oct 21 2026 - 09:59:52 EST


On Wed, Oct 21, 2026 at 11:10 AM Kang Yang <kang.yang@xxxxxxxxxxxxxxxx> wrote:
>
> Once ath10k reaches ATH10K_STATE_WEDGED, the device can no
> longer recover and remains unusable until the driver is
> reloaded.
>
> Userspace daemons may continue issuing scan and connect
> requests, which the driver can only reject individually.
>
> Mark the radio as hardware-blocked through rfkill when
> entering the WEDGED state so userspace stops retrying
> operations against a device that can no longer operate.
>
> Both WEDGED transitions already route through
> ath10k_core_enter_wedged(), so adding the call there is
> enough to cover them consistently.
>
> Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00288-QCARMSWPZ-1
> Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00189
>
> Signed-off-by: Kang Yang <kang.yang@xxxxxxxxxxxxxxxx>
> ---
> drivers/net/wireless/ath/ath10k/core.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
> index 6b6b80242cd1..66585cfa6d96 100644
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -2521,6 +2521,14 @@ static void ath10k_core_enter_wedged(struct ath10k *ar)
>
> ieee80211_stop_queues(ar->hw);
> ath10k_core_wake_all_waiters(ar);
> +
> + /*
> + * Signal the radio as hard-blocked so userspace (e.g.
> + * wpa_supplicant, NetworkManager) stops looping scan and connect
> + * requests at a device the driver has already given up on. The
> + * state is cleared only when the driver is reloaded.
> + */
> + wiphy_rfkill_set_hw_state(ar->hw->wiphy, true);

Using rfkill to signal the wedged state feels like an abuse of the
interface. Have you seen similar handling in other wireless drivers?
Wouldn't wiphy_unregister() be more appropriate here?

> }
>
> static void ath10k_core_recovery_check_work(struct work_struct *work)
>
> --
> 2.34.1
>