Просмотр исходного кода

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 лет назад
Родитель
Сommit
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)