[PATCHv2] ath11k: Invalidate cached reo ring entry before accessing it
Kalle Valo
kvalo at kernel.org
Mon Feb 21 02:27:54 PST 2022
Rameshkumar Sundaram <quic_ramess at quicinc.com> wrote:
> REO2SW ring descriptor is currently allocated in cacheable memory.
> While reaping reo ring entries on second trial after updating head
> pointer, first entry is not invalidated before accessing it.
>
> This results in host reaping and using cached descriptor which is
> already overwritten in memory by DMA device (HW).
> Since the contents of descriptor(buffer id, peer info and other information
> bits) are outdated host throws errors like below while parsing corresponding
> MSDU's and drops them.
>
> [347712.048904] ath11k_pci 0004:01:00.0: msdu_done bit in attention is not set
> [349173.355503] ath11k_pci 0004:01:00.0: frame rx with invalid buf_id 962
>
> Move the try_again: label above ath11k_hal_srng_access_begin()
> so that first entry will be invalidated and prefetched.
>
> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
>
> Fixes: 6452f0a3d565 ("ath11k: allocate dst ring descriptors from cacheable memory")
> Signed-off-by: Rameshkumar Sundaram <quic_ramess at quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo at quicinc.com>
Patch applied to ath-next branch of ath.git, thanks.
f2180ccb52b5 ath11k: Invalidate cached reo ring entry before accessing it
--
https://patchwork.kernel.org/project/linux-wireless/patch/1645000354-32558-1-git-send-email-quic_ramess@quicinc.com/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath11k
mailing list