[PATCH ath-next v2 0/4] wifi: ath12k: harden stats/rate handling for WCN785x stability

m.limarencko@yandex.ru posted 4 patches 1 month, 2 weeks ago
drivers/net/wireless/ath/ath12k/dp_mon.c | 38 ++++++++++++++---------
drivers/net/wireless/ath/ath12k/dp_rx.c  | 39 ++++++++++++++----------
drivers/net/wireless/ath/ath12k/mac.c    | 22 +++++++++++--
drivers/net/wireless/ath/ath12k/wmi.c    |  9 +++------
4 files changed, 70 insertions(+), 38 deletions(-)
[PATCH ath-next v2 0/4] wifi: ath12k: harden stats/rate handling for WCN785x stability
Posted by m.limarencko@yandex.ru 1 month, 2 weeks ago
From: Mikhail Limarenko <m.limarencko@yandex.ru>

Hi Jeff, all,

On QCNFA765/WCN785x (PCI, kernel 6.18.5) we observed three recurring
issues:

- chan info events with frequency not present in local survey range,
  producing invalid idx warnings;
- frequent VDEV_STAT polling can block for 3 seconds on fw_stats_done
  timeouts and cause visible hitches;
- occasional invalid MCS metadata (for example HE MCS=12) propagates
  into mac80211 status handling and correlates with ieee80211_rx_list
  warnings.

This series addresses those cases by:
1. returning an explicit error from freq_to_idx() when no channel
   matches, and rejecting negative indexes in callers;
2. reducing the wait on VDEV_STAT fw_stats completion and skipping
   unnecessary waits for stats types that do not require it;
3. sanitizing invalid MCS metadata in both dp_rx and dp_mon paths by
   falling back to legacy metadata with ratelimited diagnostics.

Tested on:
- hardware: QCNFA765 (WCN785x)
- kernel: 6.18.5+deb13-amd64
- AP mode: 5 GHz (802.11ac)

Observed after applying this series:
- station dump polling no longer shows multi-second stalls in test runs;
- no fresh ieee80211_rx_list WARN was observed in the same windows.

v2:
- patch 1/4 commit message no longer claims OOB in chan-info paths
- patch 1/4 keeps matched-frequency index progression unchanged
- patch 1/4 returns -ENOENT on no-match and callers reject negative idx

Thanks,
Mikhail Limarenko

Mikhail Limarenko (4):
  wifi: ath12k: return error when survey frequency is not found
  wifi: ath12k: avoid long fw_stats waits on vdev stats hot path
  wifi: ath12k: sanitize invalid MCS metadata in rx path
  wifi: ath12k: sanitize invalid MCS metadata in monitor rx path

 drivers/net/wireless/ath/ath12k/dp_mon.c | 38 ++++++++++++++---------
 drivers/net/wireless/ath/ath12k/dp_rx.c  | 39 ++++++++++++++----------
 drivers/net/wireless/ath/ath12k/mac.c    | 22 +++++++++++--
 drivers/net/wireless/ath/ath12k/wmi.c    |  9 +++------
 4 files changed, 70 insertions(+), 38 deletions(-)

-- 
2.47.3
Re: [PATCH ath-next v2 0/4] wifi: ath12k: harden stats/rate handling for WCN785x stability
Posted by Jeff Johnson 1 month ago
On 2/12/2026 4:17 AM, m.limarencko@yandex.ru wrote:
> From: Mikhail Limarenko <m.limarencko@yandex.ru>
> 
> Hi Jeff, all,
> 
> On QCNFA765/WCN785x (PCI, kernel 6.18.5) we observed three recurring
> issues:
> 
> - chan info events with frequency not present in local survey range,
>   producing invalid idx warnings;
> - frequent VDEV_STAT polling can block for 3 seconds on fw_stats_done
>   timeouts and cause visible hitches;
> - occasional invalid MCS metadata (for example HE MCS=12) propagates
>   into mac80211 status handling and correlates with ieee80211_rx_list
>   warnings.
> 
> This series addresses those cases by:
> 1. returning an explicit error from freq_to_idx() when no channel
>    matches, and rejecting negative indexes in callers;
> 2. reducing the wait on VDEV_STAT fw_stats completion and skipping
>    unnecessary waits for stats types that do not require it;
> 3. sanitizing invalid MCS metadata in both dp_rx and dp_mon paths by
>    falling back to legacy metadata with ratelimited diagnostics.
> 
> Tested on:
> - hardware: QCNFA765 (WCN785x)
> - kernel: 6.18.5+deb13-amd64
> - AP mode: 5 GHz (802.11ac)
> 
> Observed after applying this series:
> - station dump polling no longer shows multi-second stalls in test runs;
> - no fresh ieee80211_rx_list WARN was observed in the same windows.
> 
> v2:
> - patch 1/4 commit message no longer claims OOB in chan-info paths
> - patch 1/4 keeps matched-frequency index progression unchanged
> - patch 1/4 returns -ENOENT on no-match and callers reject negative idx
> 
> Thanks,
> Mikhail Limarenko
> 
> Mikhail Limarenko (4):
>   wifi: ath12k: return error when survey frequency is not found
>   wifi: ath12k: avoid long fw_stats waits on vdev stats hot path
>   wifi: ath12k: sanitize invalid MCS metadata in rx path
>   wifi: ath12k: sanitize invalid MCS metadata in monitor rx path
> 
>  drivers/net/wireless/ath/ath12k/dp_mon.c | 38 ++++++++++++++---------
>  drivers/net/wireless/ath/ath12k/dp_rx.c  | 39 ++++++++++++++----------
>  drivers/net/wireless/ath/ath12k/mac.c    | 22 +++++++++++--
>  drivers/net/wireless/ath/ath12k/wmi.c    |  9 +++------
>  4 files changed, 70 insertions(+), 38 deletions(-)
> 

This series does not apply cleanly to ath/main (or ath/ath-next).

Please make sure the issues you saw have not already been fixed since there
were substantial changes from 6.18 => 6.19.