浏览代码

qcacmn: Fix memory leak during vdev detach in STA mode

Vdev detach does not happen till all the peers associated
the vdev are deleted. because of DBDC repeater feature,
we are creating a self peer even for STA VAP and were not
deleteing it properly causing a memory leak. This change
fixes this issue.

Change-Id: I39d271bef5d5adc6e94333a3fbc483bdb7067f27
CRs-Fixed: 2193590
Tallapragada Kalyan 7 年之前
父节点
当前提交
9d9cbb6762
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      dp/wifi3.0/dp_main.c

+ 3 - 3
dp/wifi3.0/dp_main.c

@@ -3182,6 +3182,9 @@ static void dp_vdev_detach_wifi3(struct cdp_vdev *vdev_handle,
 	/* remove the vdev from its parent pdev's list */
 	TAILQ_REMOVE(&pdev->vdev_list, vdev, vdev_list_elem);
 
+	if (wlan_op_mode_sta == vdev->opmode)
+		dp_peer_delete_wifi3(vdev->vap_bss_peer, 0);
+
 	/*
 	 * Use peer_ref_mutex while accessing peer_list, in case
 	 * a peer is in the process of being removed from the list.
@@ -3209,9 +3212,6 @@ static void dp_vdev_detach_wifi3(struct cdp_vdev *vdev_handle,
 	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
 		FL("deleting vdev object %pK (%pM)"), vdev, vdev->mac_addr.raw);
 
-	if (wlan_op_mode_sta == vdev->opmode)
-		dp_peer_delete_wifi3(vdev->vap_bss_peer, 0);
-
 	qdf_mem_free(vdev);
 
 	if (callback)