summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiran Kumar Lokere <klokere@codeaurora.org>2017-12-05 18:40:52 -0800
committersnandini <snandini@codeaurora.org>2017-12-06 00:49:57 -0800
commitfca1aa3ef33ed4b11c61555c3b850c442f679865 (patch)
treef51154959788d05bfc7f9aed629d2b35d340d436
parent4ff78e413d9bc64c2447e31fc9847b8dd20fec5a (diff)
qcacld-3.0: Fix the resource leak when Tx complete fails
Fix the resource leakage when Tx completion event is not received from FW for the Tx management frame Change-Id: I17eebfeadf6d6be8d41c61c9a1687df57880f9de CRs-Fixed: 2154060
-rw-r--r--core/wma/src/wma_data.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c
index 5bc0299eb0e4..e29378f6dfe0 100644
--- a/core/wma/src/wma_data.c
+++ b/core/wma/src/wma_data.c
@@ -2431,14 +2431,19 @@ void wmi_desc_pool_deinit(tp_wma_handle wma_handle)
{
struct wmi_desc_t *wmi_desc;
uint8_t i;
+ ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX);
qdf_spin_lock_bh(&wma_handle->wmi_desc_pool.wmi_desc_pool_lock);
if (wma_handle->wmi_desc_pool.array) {
for (i = 0; i < wma_handle->wmi_desc_pool.pool_size; i++) {
wmi_desc = (struct wmi_desc_t *)
(&wma_handle->wmi_desc_pool.array[i]);
- if (wmi_desc && wmi_desc->nbuf)
+ if (wmi_desc && wmi_desc->nbuf) {
+ qdf_nbuf_unmap_single(pdev->osdev,
+ wmi_desc->nbuf,
+ QDF_DMA_TO_DEVICE);
cds_packet_free(wmi_desc->nbuf);
+ }
}
qdf_mem_free(wma_handle->wmi_desc_pool.array);
wma_handle->wmi_desc_pool.array = NULL;