[PATCH ath-next v2 0/8] wifi: ath10k: fix recovery and WEDGED failure handling

From: Kang Yang

Date: Wed Oct 21 2026 - 05:17:05 EST


Recovery failures can consume significant time before the
driver eventually gives up and enters ATH10K_STATE_WEDGED.

This series fixes several issues in the recovery and WEDGED
failure-handling paths, including recovery detection,
recovery time bounding, waiter release, and PCIe error
handling.

Several patches fix specific bugs and therefore carry Fixes
tags. The remaining patches address closely related issues in
the same recovery path because the fixes alone do not fully
resolve the reported failures.

Taken together, the series ensures that recovery either
succeeds or transitions to ATH10K_STATE_WEDGED within a
bounded amount of time, avoids unnecessary waits after
recovery has failed, and reduces the likelihood of watchdog
timeouts on affected platforms.

Google has reported this class of failures for an extended
period, with more than 4000 observed crashes over the last
month.

To: Kang Yang <kang.yang@xxxxxxxxxxxxxxxx>
To: Jeff Johnson <jjohnson@xxxxxxxxxx>
To: Baochen Qiang <baochen.qiang@xxxxxxxxxxxxxxxx>
To: Loic Poulain <loic.poulain@xxxxxxxxxxxxxxxx>
Cc: Jeff Johnson <jeff.johnson@xxxxxxxxxxxxxxxx>
Cc: linux-wireless@xxxxxxxxxxxxxxx
Cc: ath10k@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Signed-off-by: Kang Yang <kang.yang@xxxxxxxxxxxxxxxx>
---
v2:
- patch 3: also wake wow.wakeup_completed, peer_stats_info_complete and
wmi.radar_confirm on WEDGED; reinit peer_delete_done before each
peer delete command.
- patch 5: remove the early-return time_after() branch from the monitor;
in ath10k_reconfig_complete(), cancel the monitor with
cancel_delayed_work_sync() before clearing fail_cont_count and
pending_recovery.
- add SDIO Test-on tag.

---
Kang Yang (8):
wifi: ath10k: fix SDIO aux workqueue starvation in recovery detection
wifi: ath10k: wake blocked waiters when entering WEDGED state
wifi: ath10k: also wake remaining blocked waiters
wifi: ath10k: bound recovery time before entering WEDGED
wifi: ath10k: check the recovery deadline on its own timeline
wifi: ath10k: hard-block the radio when entering WEDGED state
wifi: ath10k: remove now-unused driver_recovery completion
wifi: ath10k: trigger recovery on PCIe MMIO wake-up failures

drivers/net/wireless/ath/ath10k/core.c | 129 +++++++++++++++++++++------------
drivers/net/wireless/ath/ath10k/core.h | 13 +++-
drivers/net/wireless/ath/ath10k/mac.c | 9 ++-
drivers/net/wireless/ath/ath10k/pci.c | 27 +++++++
drivers/net/wireless/ath/ath10k/snoc.c | 8 +-
5 files changed, 130 insertions(+), 56 deletions(-)
---
base-commit: cd026e68fdbf88b9cc522b76c7a9d92c9a41f709
change-id: 20261020-10k-sdio-crash-a37ab499725f

Best regards,
--
Kang Yang <kang.yang@xxxxxxxxxxxxxxxx>