Rameshkumar Sundaram <quic_ramess@xxxxxxxxxxx> 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@xxxxxxxxxxx> > Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx> 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@xxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches