wifi: ath11k: fix BUFFER_DONE read on monitor ring rx buffer
authorHarshitha Prem <quic_hprem@quicinc.com>
Wed, 15 Mar 2023 10:24:43 +0000 (12:24 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 22 Mar 2023 09:47:04 +0000 (11:47 +0200)
commit68e93ac5a31d4975b25f819b2dfe914c72abc3bb
tree923d47100cbb9fa90a93f3746b7ef29f7d0a257d
parent5a78ac33e3cb8822da64dd1af196e83664b332b0
wifi: ath11k: fix BUFFER_DONE read on monitor ring rx  buffer

Perform dma_sync_single_for_cpu() on monitor ring rx buffer before
reading BUFFER_DONE tag and do dma_unmap_single() only after device
had set BUFFER_DONE tag to the buffer.

Also when BUFFER_DONE tag is not set, allow the buffer to get read
next time without freeing skb.

This helps to fix AP+Monitor VAP with flood traffic scenario to see
monitor ring rx buffer overrun missing BUFFER_DONE tag to be set.

Also remove redundant rx dma buf free performed on DP
rx_mon_status_refill_ring.

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230309164434.32660-1-quic_hprem@quicinc.com
drivers/net/wireless/ath/ath11k/dp_rx.c