mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
In ath10k_wmi_cmd_send(), the current code detects ATH10K_STATE_WEDGED
and sets ret to -ESHUTDOWN, but still proceeds to transmit pending
beacons and calls ath10k_wmi_cmd_send_nowait().
This can lead to incorrect behavior, as WMI commands and beacons are
still sent after the device has been marked as wedged, and the original
-ESHUTDOWN return value may be overwritten by the result of the send
path.
The wedged state indicates the hardware is already unreliable, and no
further interaction with firmware is expected or meaningful in this
state.
Fix this by skipping beacon transmission and the WMI send path entirely
once ATH10K_STATE_WEDGED is detected, ensuring consistent return values
and avoiding unnecessary firmware interaction.
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
Fixes:
|
||
|---|---|---|
| .. | ||
| ahb.c | ||
| ahb.h | ||
| bmi.c | ||
| bmi.h | ||
| ce.c | ||
| ce.h | ||
| core.c | ||
| core.h | ||
| coredump.c | ||
| coredump.h | ||
| debug.c | ||
| debug.h | ||
| debugfs_sta.c | ||
| hif.h | ||
| htc.c | ||
| htc.h | ||
| htt_rx.c | ||
| htt_tx.c | ||
| htt.c | ||
| htt.h | ||
| hw.c | ||
| hw.h | ||
| Kconfig | ||
| leds.c | ||
| leds.h | ||
| mac.c | ||
| mac.h | ||
| Makefile | ||
| p2p.c | ||
| p2p.h | ||
| pci.c | ||
| pci.h | ||
| qmi_wlfw_v01.c | ||
| qmi_wlfw_v01.h | ||
| qmi.c | ||
| qmi.h | ||
| rx_desc.h | ||
| sdio.c | ||
| sdio.h | ||
| snoc.c | ||
| snoc.h | ||
| spectral.c | ||
| spectral.h | ||
| swap.c | ||
| swap.h | ||
| targaddrs.h | ||
| testmode_i.h | ||
| testmode.c | ||
| testmode.h | ||
| thermal.c | ||
| thermal.h | ||
| trace.c | ||
| trace.h | ||
| txrx.c | ||
| txrx.h | ||
| usb.c | ||
| usb.h | ||
| wmi-ops.h | ||
| wmi-tlv.c | ||
| wmi-tlv.h | ||
| wmi.c | ||
| wmi.h | ||
| wow.c | ||
| wow.h | ||