Prechádzať zdrojové kódy

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
chenguo 7 rokov pred
rodič
commit
7853b790bf
1 zmenil súbory, kde vykonal 9 pridanie a 0 odobranie
  1. 9 0
      dp/wifi3.0/dp_main.c

+ 9 - 0
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);