浏览代码

qcacmn: Fix monitor link descriptor memory alloc failure

In existing approach, monitor rings get initalized
on monitor vap init time,
For linux 5.4 kernel, physical contiguous memory(512Kb) is not
available on vap init time.
Initialize monitor related rings on monitor vap creation time
to get required memory.

Change-Id: I288c27cfcf77b3d224c2f21bbe8ac65670f32dda
CRs-Fixed: 2865141
Amir Patel 4 年之前
父节点
当前提交
6c6f067b65
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      dp/wifi3.0/dp_main.c

+ 2 - 1
dp/wifi3.0/dp_main.c

@@ -265,6 +265,7 @@ static uint8_t dp_soc_ring_if_nss_offloaded(struct dp_soc *soc,
 					    int ring_num);
 static QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
 						 uint8_t delayed_replenish);
+static void dp_vdev_set_monitor_mode_buf_rings(struct dp_pdev *pdev);
 
 #define DP_INTR_POLL_TIMER_MS	5
 
@@ -5803,6 +5804,7 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
 	dp_vdev_id_map_tbl_add(soc, vdev, vdev_id);
 
 	if (wlan_op_mode_monitor == vdev->opmode) {
+		dp_vdev_set_monitor_mode_buf_rings(pdev);
 		pdev->monitor_vdev = vdev;
 		return QDF_STATUS_SUCCESS;
 	}
@@ -7754,7 +7756,6 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_soc_t *dp_soc,
 	}
 
 	pdev->monitor_configured = true;
-	dp_vdev_set_monitor_mode_buf_rings(pdev);
 
 	dp_mon_filter_setup_mon_mode(pdev);
 	status = dp_mon_filter_update(pdev);