qcacmn: Add fix for memory leak
Added fix for two leak, a) During wifi unload, buffer used in init need to be free during deinit. b) Before buffer free, unmap is required for the buffer mapped to DMA. Change-Id: I4e5a63b0c2aabb69367365e74961a63194144057 CRs-Fixed: 3157424
This commit is contained in:

committed by
Madan Koyyalamudi

parent
57f7c8363b
commit
8d6fd579fb
@@ -431,6 +431,7 @@ void dp_rx_desc_nbuf_free(struct dp_soc *soc,
|
||||
|
||||
qdf_spin_lock_bh(&rx_desc_pool->lock);
|
||||
for (i = 0; i < rx_desc_pool->pool_size; i++) {
|
||||
dp_rx_desc_free_dbg_info(&rx_desc_pool->array[i].rx_desc);
|
||||
if (rx_desc_pool->array[i].rx_desc.in_use) {
|
||||
nbuf = rx_desc_pool->array[i].rx_desc.nbuf;
|
||||
|
||||
@@ -468,6 +469,7 @@ void dp_rx_desc_frag_free(struct dp_soc *soc,
|
||||
paddr = rx_desc_pool->array[i].rx_desc.paddr_buf_start;
|
||||
vaddr = rx_desc_pool->array[i].rx_desc.rx_buf_start;
|
||||
|
||||
dp_rx_desc_free_dbg_info(&rx_desc_pool->array[i].rx_desc);
|
||||
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
|
||||
qdf_mem_unmap_page(soc->osdev, paddr,
|
||||
rx_desc_pool->buf_size,
|
||||
|
@@ -3722,6 +3722,8 @@ void dp_tx_reinject_handler(struct dp_soc *soc,
|
||||
qdf_spin_unlock_bh(&vdev->peer_list_lock);
|
||||
}
|
||||
|
||||
qdf_nbuf_unmap_nbytes_single(vdev->osdev, nbuf, QDF_DMA_TO_DEVICE,
|
||||
nbuf->len);
|
||||
qdf_nbuf_free(nbuf);
|
||||
|
||||
dp_tx_desc_release(tx_desc, tx_desc->pool_id);
|
||||
|
Reference in New Issue
Block a user