linux/drivers/net/wireless/ath/ath11k
Kyle Farnung f51e4b3b55 wifi: ath11k: clear shared SRNG pointer state on restart
LMAC rings reuse the shared rdp/wrp pointer buffers without going
through the normal SRNG hw-init path that zeros non-LMAC ring
pointers. After restart, ath11k_hal_srng_clear() can therefore hand
stale hp/tp state from the previous firmware instance back to the new
one.

Clear the shared pointer buffers while keeping the allocations in
place so restart still avoids reallocating SRNG DMA memory, but starts
with fresh ring-pointer state.

Fixes: 32be3ca4cf ("wifi: ath11k: HAL SRNG: don't deinitialize and re-initialize again")
Cc: stable@vger.kernel.org
Closes: https://lore.kernel.org/all/CAOPSVF04q6uvVdq8GTRLHBrVMdpt9=o9wVcFMc6f-yhmSBcZqQ@mail.gmail.com/
Signed-off-by: Kyle Farnung <kfarnung@gmail.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Link: https://patch.msgid.link/20260513-kfarnung-ath11k-srng-clear-pointer-state-v1-1-bc700dd8b333@gmail.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-05-18 06:47:03 -07:00
..
ahb.c wifi: ath11k: Silence remoteproc probe deferral prints 2026-03-02 13:02:05 -08:00
ahb.h
ce.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ce.h
cfr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cfr.h wifi: ath11k: Register handler for CFR capture event 2026-01-15 17:19:38 -08:00
core.c wifi: ath11k: add usecase firmware handling based on device compatible 2026-01-30 07:12:37 -08:00
core.h wifi: ath11k: add usecase firmware handling based on device compatible 2026-01-30 07:12:37 -08:00
coredump.c wifi: ath11k: Add missing include of export.h 2025-06-23 07:28:33 -07:00
coredump.h
dbring.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
dbring.h wifi: ath11k: Register DBR event handler for CFR data 2026-01-15 17:19:38 -08:00
debug.c wifi: ath11k: Add missing include of export.h 2025-06-23 07:28:33 -07:00
debug.h wifi: ath11k: Register DBR event handler for CFR data 2026-01-15 17:19:38 -08:00
debugfs_htt_stats.c wifi: ath11k: Prefer {} to {0} in initializers 2025-07-21 14:34:01 -07:00
debugfs_htt_stats.h
debugfs_sta.c wifi: ath11k: Register debugfs for CFR configuration 2026-01-15 17:19:37 -08:00
debugfs_sta.h
debugfs.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
debugfs.h wifi: ath11k: move some firmware stats related functions outside of debugfs 2025-06-07 07:36:03 -07:00
dp_rx.c wifi: ath11k: fix use after free in ath11k_dp_rx_msdu_coalesce() 2026-05-18 06:47:02 -07:00
dp_rx.h
dp_tx.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
dp_tx.h
dp.c wifi: ath11k: Use michael_mic() from cfg80211 2026-04-08 08:55:15 +02:00
dp.h wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params 2026-01-15 17:19:38 -08:00
fw.c wifi: ath11k: Add missing include of export.h 2025-06-23 07:28:33 -07:00
fw.h
hal_desc.h
hal_rx.c wifi: ath11k: fix peer resolution on rx path when peer_id=0 2026-05-18 06:47:02 -07:00
hal_rx.h
hal_tx.c
hal_tx.h
hal.c wifi: ath11k: clear shared SRNG pointer state on restart 2026-05-18 06:47:03 -07:00
hal.h wifi: ath11k: Correctly use "ab" macro parameter 2025-10-23 10:34:06 -07:00
hif.h
htc.c wifi: ath11k: Make read-only const array svc_id static const 2025-06-26 16:10:45 -07:00
htc.h
hw.c wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params 2026-01-15 17:19:38 -08:00
hw.h wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params 2026-01-15 17:19:38 -08:00
Kconfig wifi: ath11k: Use michael_mic() from cfg80211 2026-04-08 08:55:15 +02:00
mac.c wifi: move action code from per-type frame structs 2026-03-06 10:36:26 +01:00
mac.h wifi: ath11k: move some firmware stats related functions outside of debugfs 2025-06-07 07:36:03 -07:00
Makefile wifi: ath11k: Add initialization and deinitialization sequence for CFR module 2026-01-15 17:19:37 -08:00
mhi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mhi.h
p2p.c
p2p.h
pci.c wifi: ath11k: restore register window after global reset 2025-10-15 16:37:53 -07:00
pci.h wifi: ath11k: Correctly use "ab" macro parameter 2025-10-23 10:34:06 -07:00
pcic.c wifi: ath11k: Add missing include of export.h 2025-06-23 07:28:33 -07:00
pcic.h
peer.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
peer.h wifi: ath11k: Use michael_mic() from cfg80211 2026-04-08 08:55:15 +02:00
qmi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qmi.h
reg.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
reg.h
rx_desc.h
spectral.c wifi: ath11k: Prefer {} to {0} in initializers 2025-07-21 14:34:01 -07:00
spectral.h
testmode.c wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm() 2026-05-12 06:57:23 -07:00
testmode.h
thermal.c
thermal.h
trace.c wifi: ath11k: Add missing include of export.h 2025-06-23 07:28:33 -07:00
trace.h
wmi.c wifi: ath11k: fix error path leaks in some WMI calls 2026-05-12 06:54:20 -07:00
wmi.h wifi: ath11k: Register handler for CFR capture event 2026-01-15 17:19:38 -08:00
wow.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
wow.h