Răsfoiți Sursa

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
Manikanta Pubbisetty 4 ani în urmă
părinte
comite
a51d70591e
1 a modificat fișierele cu 7 adăugiri și 0 ștergeri
  1. 7 0
      dp/wifi3.0/dp_main.c

+ 7 - 0
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;