[PATCH 0/5] wifi: ath: avoid IDR mutation while iterating

Jiale Yao yaojiale02 at 163.com
Sat Sep 26 08:48:19 PDT 2026


The ath10k, ath11k, and ath12k cleanup paths walk an IDR while their
callbacks remove the current entry. idr_for_each() retains radix-tree
iterator state across the callback, so that removal can invalidate the
walk.

For ath11k and ath12k full teardown, keep the callback limited to
releasing the supplied skb and leave IDR teardown to the following
idr_destroy(), matching the established SCMI fix. For selective per-vif
cleanup, use idr_for_each_entry() so each iteration starts with a fresh
lookup before removing a matching entry. ath10k also uses
idr_for_each_entry() because its shared TX completion helper must retain
the per-entry removal.

Jiale Yao (5):
  wifi: ath10k: avoid IDR mutation during TX cleanup
  wifi: ath11k: avoid IDR mutation during pending mgmt TX cleanup
  wifi: ath11k: avoid IDR mutation during vif mgmt TX cleanup
  wifi: ath12k: avoid IDR mutation during pending mgmt TX cleanup
  wifi: ath12k: avoid IDR mutation during vif mgmt TX cleanup

 drivers/net/wireless/ath/ath10k/htt_tx.c |  7 +++-
 drivers/net/wireless/ath/ath11k/mac.c    | 46 +++++++++++++-----------
 drivers/net/wireless/ath/ath12k/mac.c    | 46 +++++++++++++-----------
 3 files changed, 58 insertions(+), 41 deletions(-)

-- 
2.34.1




More information about the ath12k mailing list