From 7853b790bfc740790cc4bfd4cb71928e37b53392 Mon Sep 17 00:00:00 2001 From: chenguo Date: Thu, 28 Dec 2017 20:59:12 +0800 Subject: [PATCH] qcacmn: Free all resources when VDEV is detached TX descriptors should be unmapped and freed when VDEV is detached. Or else it will cause memory leak in qdf_mem. CRs-Fixed: 2163178 Change-Id: I59da73787786f78c1f057e4daad7b4d53e7fbe4c --- dp/wifi3.0/dp_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 90b323acf645..9cea060ad9b2 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -3664,6 +3664,15 @@ void dp_peer_unref_delete(void *peer_handle) " - its last peer is done"), vdev, vdev->mac_addr.raw); /* all peers are gone, go ahead and delete it */ + dp_tx_flow_pool_unmap_handler(pdev, vdev->vdev_id, + FLOW_TYPE_VDEV, + vdev->vdev_id); + dp_tx_vdev_detach(vdev); + QDF_TRACE(QDF_MODULE_ID_DP, + QDF_TRACE_LEVEL_INFO_HIGH, + FL("deleting vdev object %pK (%pM)"), + vdev, vdev->mac_addr.raw); + qdf_mem_free(vdev); if (vdev_delete_cb) vdev_delete_cb(vdev_delete_context);