From 7a3b6c8d99e4a0c7f1b73b4741f6f264bd331dca Mon Sep 17 00:00:00 2001 From: Manikanta Pubbisetty Date: Mon, 2 Nov 2020 14:12:39 +0530 Subject: [PATCH] qcacmn: reset monitor filter before ring reap In monitor mode, as part of VDEV delete, we are reaping monitor rings to avoid backpressure from RXDMA2SW ring. Looks like the ring continues to grow even after reaping, reset the monitor filters before reaping to avoid ring backpressure. Change-Id: I0d9dde61b62648f8ce11c15ba23612fc8491fff2 CRs-Fixed: 2807482 --- dp/wifi3.0/dp_main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index d22f1f076bad..81310be01636 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -6573,6 +6573,13 @@ static void dp_flush_monitor_rings(struct dp_soc *soc) int budget; void *mon_dst_srng; + /* Reset monitor filters before reaping the ring*/ + qdf_spin_lock_bh(&pdev->mon_lock); + dp_mon_filter_reset_mon_mode(pdev); + if (dp_mon_filter_update(pdev) != QDF_STATUS_SUCCESS) + dp_info("failed to reset monitor filters"); + qdf_spin_unlock_bh(&pdev->mon_lock); + if (pdev->mon_chan_band == REG_BAND_UNKNOWN) return;