From: Julius Bairaktaris <julius@bairaktaris.de>
To: Jeff Johnson <jjohnson@kernel.org>
Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org,
linux-kernel@vger.kernel.org,
Baochen Qiang <baochen.qiang@oss.qualcomm.com>,
Vasanthakumar Thiagarajan
<vasanthakumar.thiagarajan@oss.qualcomm.com>,
Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>,
P Praneesh <praneesh.p@oss.qualcomm.com>,
Kalle Valo <kvalo@kernel.org>,
Muhammad Usama Anjum <usama.anjum@arm.com>,
John Crispin <john@phrozen.org>,
Sriram R <sriram.ramachandran@oss.qualcomm.com>
Subject: [PATCH ath-next v2 5/5] wifi: ath11k: hold back WMI commands while the firmware restarts
Date: Sun, 18 Oct 2026 23:01:53 +0200 [thread overview]
Message-ID: <20261018210153.1925962-6-julius@bairaktaris.de> (raw)
In-Reply-To: <20261018210153.1925962-1-julius@bairaktaris.de>
ath11k_core_restart() brings the firmware up outside mac80211's restart,
so cfg80211 operations keep sending WMI commands while the HTC services
reconnect and before the firmware reports ready. These commands crash
the restarting firmware again, and recovery then fails on the unified
ready timeout:
ath11k c000000.wifi: failed to receive wmi unified ready event: -110
ath11k c000000.wifi: failed to reconfigure driver on crash recovery
With iw setting the RTS threshold in a loop from the moment the firmware
stops, the firmware crashed 15, 15 and 11 times on three triggers
before recovery succeeded. With this patch it crashed once per trigger
(5 of 5).
Return -ESHUTDOWN for commands from outside the restart worker while
ATH11K_FLAG_RECOVERY is set. mac80211 replays the configuration when the
driver restarts the hardware.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1
Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Julius Bairaktaris <julius@bairaktaris.de>
---
drivers/net/wireless/ath/ath11k/wmi.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 3d5b6605eace8..5c27e7057e6ad 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -312,6 +312,10 @@ int ath11k_wmi_cmd_send(struct ath11k_pdev_wmi *wmi, struct sk_buff *skb,
might_sleep();
+ if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags) &&
+ current_work() != &ab->restart_work)
+ return -ESHUTDOWN;
+
if (ab->hw_params.credit_flow) {
wait_event_timeout(wmi_ab->tx_credits_wq, ({
ret = ath11k_wmi_cmd_send_nowait(wmi, skb, cmd_id);
--
2.53.0
next prev parent reply other threads:[~2026-10-18 21:02 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-18 21:01 [PATCH ath-next v2 0/5] wifi: ath11k: firmware crash recovery fixes Julius Bairaktaris
2026-10-18 21:01 ` [PATCH ath-next v2 1/5] wifi: ath11k: initialise the CE descriptor waitqueue once per device Julius Bairaktaris
2026-10-18 21:01 ` [PATCH ath-next v2 2/5] wifi: ath11k: keep the radios when a firmware recovery fails Julius Bairaktaris
2026-10-18 21:01 ` [PATCH ath-next v2 3/5] wifi: ath11k: keep the srng allocations " Julius Bairaktaris
2026-10-18 21:01 ` [PATCH ath-next v2 4/5] wifi: ath11k: clear CRASH_FLUSH only after recovery rebuilds the rings Julius Bairaktaris
2026-10-18 21:01 ` Julius Bairaktaris [this message]
2026-11-01 13:15 ` [PATCH ath-next v2 0/5] wifi: ath11k: firmware crash recovery fixes Florian Maurer
2026-11-01 16:47 ` Julius Bairaktaris
2026-11-06 0:58 ` Florian Maurer
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=20261018210153.1925962-6-julius@bairaktaris.de \
--to=julius@bairaktaris.de \
--cc=ath11k@lists.infradead.org \
--cc=baochen.qiang@oss.qualcomm.com \
--cc=jjohnson@kernel.org \
--cc=john@phrozen.org \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=praneesh.p@oss.qualcomm.com \
--cc=rameshkumar.sundaram@oss.qualcomm.com \
--cc=sriram.ramachandran@oss.qualcomm.com \
--cc=usama.anjum@arm.com \
--cc=vasanthakumar.thiagarajan@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®