Description
In the Linux kernel, the following vulnerability has been resolved: wifi: ath10k: shutdown driver when hardware is unreliable In rare cases, ath10k may lose connection with the PCIe bus due to some unknown reasons, which could further lead to system crashes during resuming due to watchdog timeout: ath10k_pci 0000:01:00.0: wmi command 20486 timeout, restarting hardware ath10k_pci 0000:01:00.0: already restarting ath10k_pci 0000:01:00.0: failed to stop WMI vdev 0: -11 ath10k_pci 0000:01:00.0: failed to stop vdev 0: -11 ieee80211 phy0: PM: **** DPM device timeout **** Call Trace: panic+0x125/0x315 dpm_watchdog_set+0x54/0x54 dpm_watchdog_handler+0x57/0x57 call_timer_fn+0x31/0x13c At this point, all WMI commands will timeout and attempt to restart device. So set a threshold for consecutive restart failures. If the threshold is exceeded, consider the hardware is unreliable and all ath10k operations should be skipped to avoid system crash. fail_cont_count and pending_recovery are atomic variables, and do not involve complex conditional logic. Therefore, even if recovery check and reconfig complete are executed concurrently, the recovery mechanism will not be broken. Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00288-QCARMSWPZ-1
Product status
5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5 (git) before 201c9b4485edc618863a60f97a2d88bddd139467
5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5 (git) before e36991bddf8be63e79659f654cdb1722db4e8132
5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5 (git) before 84ca5632b8d05d1c2e25604d1d63434b2fb61c85
5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5 (git) before c256a94d1b1b15109740306f7f2a7c2173e12072
3.11
Any version before 3.11
6.12.43 (semver)
6.15.11 (semver)
6.16.2 (semver)
6.17 (original_commit_for_fix)
References
git.kernel.org/...c/201c9b4485edc618863a60f97a2d88bddd139467
git.kernel.org/...c/e36991bddf8be63e79659f654cdb1722db4e8132
git.kernel.org/...c/84ca5632b8d05d1c2e25604d1d63434b2fb61c85
git.kernel.org/...c/c256a94d1b1b15109740306f7f2a7c2173e12072