From e53dbab8387d0326a3b538f08f4f5e85caad13ab Mon Sep 17 00:00:00 2001 From: Karthik Kantamneni Date: Fri, 5 Jun 2020 23:22:32 +0530 Subject: [PATCH] qcacmn: Fix uninitialized srng access in monitor mode In monitor mode buffer replenish ring is accessed without getting initialized for configuring low threshold value. Add check to avoid uninitialized srng pointer access. Change-Id: If5dc98d4c1db939ef762749392ec42d46a4ae1f3 CRs-Fixed: 2704586 --- dp/wifi3.0/dp_main.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index bb39ccdce974..03dec2be15a9 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -6508,12 +6508,15 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_soc_t *soc, * configured. */ mon_buf_ring = &pdev->soc->rxdma_mon_buf_ring[mac_for_pdev]; - num_entries = mon_buf_ring->num_entries; - hal_set_low_threshold(pdev->soc->rxdma_mon_buf_ring[mac_for_pdev].hal_srng, - num_entries >> 3); - htt_srng_setup(pdev->soc->htt_handle, pdev->pdev_id, - pdev->soc->rxdma_mon_buf_ring[mac_for_pdev] - .hal_srng, RXDMA_MONITOR_BUF); + if (mon_buf_ring->hal_srng) { + num_entries = mon_buf_ring->num_entries; + hal_set_low_threshold(mon_buf_ring->hal_srng, + num_entries >> 3); + htt_srng_setup(pdev->soc->htt_handle, + pdev->pdev_id, + mon_buf_ring->hal_srng, + RXDMA_MONITOR_BUF); + } } dp_soc_config_full_mon_mode(pdev, DP_FULL_MON_ENABLE);