dma/idxd: fix partial freeing in PCI close
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' simultaneously. 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: 9449330a84
("dma/idxd: create dmadev instances on PCI probe")
Cc: stable@dpdk.org
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
8a6eb404c4
commit
1a57c8d553
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user