From: Kang Yang <kang.yang@oss.qualcomm.com>
To: Loic Poulain <loic.poulain@oss.qualcomm.com>
Cc: Jeff Johnson <jjohnson@kernel.org>,
Baochen Qiang <baochen.qiang@oss.qualcomm.com>,
Jeff Johnson <jeff.johnson@oss.qualcomm.com>,
linux-wireless@vger.kernel.org, ath10k@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH ath-next v2 6/8] wifi: ath10k: hard-block the radio when entering WEDGED state
Date: Thu, 22 Oct 2026 09:55:08 +0800 [thread overview]
Message-ID: <25cac2ee-7696-4da0-abb5-cde8a21dff15@oss.qualcomm.com> (raw)
In-Reply-To: <CAFEp6-0WLtOCGQbhybo21WWX_ZbE6_nRVQLq-Hqddc-+Vvvafw@mail.gmail.com>
On 10/21/2026 9:54 PM, Loic Poulain wrote:
> On Wed, Oct 21, 2026 at 11:10 AM Kang Yang <kang.yang@oss.qualcomm.com> 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@oss.qualcomm.com>
>> ---
>> 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?
You can grep with 'wiphy_rfkill_set_hw_state' under
'drivers/net/wireless' and you will see dozens of related calls.
We have tried wiphy_unregister() during internal review, which will
generate a lot of call stacks(more than 20). wiphy_unregister() will
call into ath10k to perform many operations, but at this point, the
ath10k driver is no longer able to perform any behavior properly.
>
>> }
>>
>> static void ath10k_core_recovery_check_work(struct work_struct *work)
>>
>> --
>> 2.34.1
>>
next prev parent reply other threads:[~2026-10-22 1:55 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 9:09 [PATCH ath-next v2 0/8] wifi: ath10k: fix recovery and WEDGED failure handling Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 1/8] wifi: ath10k: fix SDIO aux workqueue starvation in recovery detection Kang Yang
2026-10-21 13:33 ` Loic Poulain
2026-10-22 2:06 ` Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 2/8] wifi: ath10k: wake blocked waiters when entering WEDGED state Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 3/8] wifi: ath10k: also wake remaining blocked waiters Kang Yang
2026-10-21 13:43 ` Loic Poulain
2026-10-21 9:09 ` [PATCH ath-next v2 4/8] wifi: ath10k: bound recovery time before entering WEDGED Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 5/8] wifi: ath10k: check the recovery deadline on its own timeline Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 6/8] wifi: ath10k: hard-block the radio when entering WEDGED state Kang Yang
2026-10-21 13:54 ` Loic Poulain
2026-10-22 1:55 ` Kang Yang [this message]
2026-10-21 9:09 ` [PATCH ath-next v2 7/8] wifi: ath10k: remove now-unused driver_recovery completion Kang Yang
2026-10-21 9:09 ` [PATCH ath-next v2 8/8] wifi: ath10k: trigger recovery on PCIe MMIO wake-up failures Kang Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25cac2ee-7696-4da0-abb5-cde8a21dff15@oss.qualcomm.com \
--to=kang.yang@oss.qualcomm.com \
--cc=ath10k@lists.infradead.org \
--cc=baochen.qiang@oss.qualcomm.com \
--cc=jeff.johnson@oss.qualcomm.com \
--cc=jjohnson@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®