[PATCH v2 0/4] wifi: ath12k: fix dest ring-buffer corruption
Baochen Qiang
quic_bqiang at quicinc.com
Thu Jun 5 01:37:13 PDT 2025
On 6/4/2025 10:45 PM, Johan Hovold wrote:
> As a follow up to commit:
>
> b67d2cf14ea ("wifi: ath12k: fix ring-buffer corruption")
>
> add the remaining missing memory barriers to make sure that destination
> ring descriptors are read after the head pointers to avoid using stale
> data on weakly ordered architectures like aarch64.
>
> Also switch back to plain accesses for the descriptor fields which is
> sufficient after the memory barrier.
>
> New in v2 are two patches that add the missing barriers also for source
> rings and when updating the tail pointer for destination rings.
>
> To avoid leaking ring details from the "hal" (lmac or non-lmac), the
> barriers are added to the ath12k_hal_srng_access_end() helper. For
Could you elaborate? what do you mean by "leaking ring details from the 'hal'"?
> symmetry I therefore moved also the dest ring barriers into
> ath12k_hal_srng_access_begin() and made the barrier conditional.
>
> [ Due to this change I did not add Miaoqing's reviewed-by tag. ]
>
> Johan
>
>
> Changes in v2:
> - add tested-on tags to plain access patch
> - move destination barriers into begin helper
> - fix source ring corruption (new patch)
> - fix dest ring corruption when ring is full (new patch)
>
>
> Johan Hovold (4):
> wifi: ath12k: fix dest ring-buffer corruption
> wifi: ath12k: use plain access for descriptor length
> wifi: ath12k: fix source ring-buffer corruption
> wifi: ath12k: fix dest ring-buffer corruption when ring is full
>
> drivers/net/wireless/ath/ath12k/ce.c | 3 --
> drivers/net/wireless/ath/ath12k/hal.c | 40 ++++++++++++++++++++++-----
> 2 files changed, 33 insertions(+), 10 deletions(-)
>
More information about the ath12k
mailing list