[PATCH v3 2/3] dma/idxd: fix memory leak due to free on incorrect pointer
Kevin Laatz
kevin.laatz at intel.com
Mon Jul 4 17:27:50 CEST 2022
During PCI device close, any allocated memory needs to be free'd.
Currently, one of the free's is being called on an incorrect idxd_dmadev
struct member, namely 'batch_idx_ring'.
At device creation, memory is allocated for both 'batch_comp_ring' and
'batch_idx_ring' simultaeneously. Calling free only on 'batch_idx_ring'
meant the first half of this memory was not being free'd, leading to the
memleak.
This patch fixes this memleak by calling free on 'batch_comp_ring' which
will free the memory for both rings.
Fixes: 9449330a8458 ("dma/idxd: create dmadev instances on PCI probe")
Cc: stable at dpdk.org
Cc: bruce.richardson at intel.com
Signed-off-by: Kevin Laatz <kevin.laatz at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
drivers/dma/idxd/idxd_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma/idxd/idxd_pci.c b/drivers/dma/idxd/idxd_pci.c
index fb618d34b6..2c3b01cd2b 100644
--- a/drivers/dma/idxd/idxd_pci.c
+++ b/drivers/dma/idxd/idxd_pci.c
@@ -130,7 +130,7 @@ idxd_pci_dev_close(struct rte_dma_dev *dev)
/* free device memory */
IDXD_PMD_DEBUG("Freeing device driver memory");
- rte_free(idxd->batch_idx_ring);
+ rte_free(idxd->batch_comp_ring);
rte_free(idxd->desc_ring);
/* if this is the last WQ on the device, disable the device and free
--
2.31.1
More information about the dev
mailing list