[PATCH ath-next v2 0/5] wifi: ath11k: firmware crash recovery fixes

From: Julius Bairaktaris

Date: Sun Oct 18 2026 - 17:03:14 EST


Firmware crash recovery on IPQ8074 resets a waitqueue under a sleeping
WMI sender (1/5), frees radios and ring memory still in use when it
fails (2/5, 3/5), sends on rings it has not rebuilt yet (4/5), and lets
cfg80211 commands crash the restarting firmware again (5/5). Patches 1
and 4 are v2 of the series linked below; 2, 3 and 5 are new.

Tested on IPQ8074 (WLAN.HK.2.9.0.1-02146) with the firmware assert from
debugfs. Without the series, every recovery reported list_del corruption
on the CE waitqueue (6 of 6), an RTS threshold loop during recovery
faulted in ath11k_hal_srng_access_begin() (3 of 3), and after a failed
recovery the next crash faulted in sta_info_hash_lookup() and rmmod in
ath11k_dp_rx_pdev_free() (1 of 1 each). With the series, 12 recoveries
(5 with the RTS loop, 2 with beacon updates, 2 after a failed recovery,
3 idle) showed no fault or list corruption, a failed recovery recovered
on the next crash, and rmmod and reload worked.

v2:
- 1/5: name ath11k_connect_pdev_htc_service() and ath11k_wmi_connect()
(Baochen). Add Reviewed-by.
- 4/5: fix the recovery ordering instead of testing srng fields in the
CE layer (Baochen). Drop the ath11k_ce_completed_send_next() hunk.
Fixes: the first driver version.
- 2/5, 3/5, 5/5: new.

v1: https://lore.kernel.org/r/20260805192129.61113-1-julius@xxxxxxxxxxxxxx

Julius Bairaktaris (5):
wifi: ath11k: initialise the CE descriptor waitqueue once per device
wifi: ath11k: keep the radios when a firmware recovery fails
wifi: ath11k: keep the srng allocations when a firmware recovery fails
wifi: ath11k: clear CRASH_FLUSH only after recovery rebuilds the rings
wifi: ath11k: hold back WMI commands while the firmware restarts

drivers/net/wireless/ath/ath11k/core.c | 21 ++++++++++++---------
drivers/net/wireless/ath/ath11k/wmi.c | 5 ++++-
2 files changed, 16 insertions(+), 10 deletions(-)


base-commit: cd026e68fdbf88b9cc522b76c7a9d92c9a41f709
--
2.53.0