819a96500d
commit 1a5352a81b4720ba43d9c899974e3bddf7ce0ce8 upstream. The ath11k active pdevs are protected by RCU but the temperature event handling code calling ath11k_mac_get_ar_by_pdev_id() was not marked as a read-side critical section as reported by RCU lockdep: ============================= WARNING: suspicious RCU usage 6.6.0-rc6 #7 Not tainted ----------------------------- drivers/net/wireless/ath/ath11k/mac.c:638 suspicious rcu_dereference_check() usage! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 no locks held by swapper/0/0. ... Call trace: ... lockdep_rcu_suspicious+0x16c/0x22c ath11k_mac_get_ar_by_pdev_id+0x194/0x1b0 [ath11k] ath11k_wmi_tlv_op_rx+0xa84/0x2c1c [ath11k] ath11k_htc_rx_completion_handler+0x388/0x510 [ath11k] Mark the code in question as an RCU read-side critical section to avoid any potential use-after-free issues. Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Fixes: a41d10348b01 ("ath11k: add thermal sensor device support") Cc: stable@vger.kernel.org # 5.7 Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20231019153115.26401-2-johan+linaro@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
ahb.c | ||
ahb.h | ||
ce.c | ||
ce.h | ||
core.c | ||
core.h | ||
dbring.c | ||
dbring.h | ||
debug.c | ||
debug.h | ||
debugfs.c | ||
debugfs.h | ||
debugfs_htt_stats.c | ||
debugfs_htt_stats.h | ||
debugfs_sta.c | ||
debugfs_sta.h | ||
dp.c | ||
dp.h | ||
dp_rx.c | ||
dp_rx.h | ||
dp_tx.c | ||
dp_tx.h | ||
hal.c | ||
hal.h | ||
hal_desc.h | ||
hal_rx.c | ||
hal_rx.h | ||
hal_tx.c | ||
hal_tx.h | ||
hif.h | ||
htc.c | ||
htc.h | ||
hw.c | ||
hw.h | ||
Kconfig | ||
mac.c | ||
mac.h | ||
Makefile | ||
mhi.c | ||
mhi.h | ||
pci.c | ||
pci.h | ||
peer.c | ||
peer.h | ||
qmi.c | ||
qmi.h | ||
reg.c | ||
reg.h | ||
rx_desc.h | ||
spectral.c | ||
spectral.h | ||
testmode.c | ||
testmode.h | ||
testmode_i.h | ||
thermal.c | ||
thermal.h | ||
trace.c | ||
trace.h | ||
wmi.c | ||
wmi.h |