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
This commit is contained in:
Tallapragada Kalyan 2018-02-26 17:39:12 +05:30 • committed by snandini
commit 9d9cbb6762

View file

@ -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)