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: sta...@dpdk.org Cc: bruce.richard...@intel.com Signed-off-by: Kevin Laatz <kevin.la...@intel.com> Acked-by: Bruce Richardson <bruce.richard...@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