aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/lapb/lapb_timer.c
diff options
context:
space:
mode:
authorJohan Hovold <johan+linaro@kernel.org>2025-03-21 10:52:19 +0100
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>2025-05-19 10:45:39 -0700
commit6b67d2cf14ea997061f61e9c8afd4e1c0f22acb9 (patch)
tree18dbdc7503ba5bda91541b8631e08a86062b97ba /net/lapb/lapb_timer.c
parentwifi: ath12k: fix memory leak in ath12k_service_ready_ext_event (diff)
downloadwireguard-linux-6b67d2cf14ea997061f61e9c8afd4e1c0f22acb9.tar.xz
wireguard-linux-6b67d2cf14ea997061f61e9c8afd4e1c0f22acb9.zip
wifi: ath12k: fix ring-buffer corruption
Users of the Lenovo ThinkPad X13s have reported that Wi-Fi sometimes breaks and the log fills up with errors like: ath11k_pci 0006:01:00.0: HTC Rx: insufficient length, got 1484, expected 1492 ath11k_pci 0006:01:00.0: HTC Rx: insufficient length, got 1460, expected 1484 which based on a quick look at the ath11k driver seemed to indicate some kind of ring-buffer corruption. Miaoqing Pan tracked it down to the host seeing the updated destination ring head pointer before the updated descriptor, and the error handling for that in turn leaves the ring buffer in an inconsistent state. While this has not yet been observed with ath12k, the ring-buffer implementation is very similar to the ath11k one and it suffers from the same bugs. Add the missing memory barrier to make sure that the descriptor is read after the head pointer to address the root cause of the corruption while fixing up the error handling in case there are ever any (ordering) bugs on the device side. Note that the READ_ONCE() are only needed to avoid compiler mischief in case the ring-buffer helpers are ever inlined. Tested-on: WCN7850 hw2.0 WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Cc: stable@vger.kernel.org # 6.3 Link: https://bugzilla.kernel.org/show_bug.cgi?id=218623 Link: https://lore.kernel.org/20250310010217.3845141-3-quic_miaoqing@quicinc.com Cc: Miaoqing Pan <quic_miaoqing@quicinc.com> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Reviewed-by: Miaoqing Pan <quic_miaoqing@quicinc.com> Link: https://patch.msgid.link/20250321095219.19369-1-johan+linaro@kernel.org Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions