[PATCH v3 8/9] dmaengine: idxd: Add missing idxd cleanup to fix memory leak in remove call

From: Shuai Xue
Date: Sun Mar 09 2025 - 01:21:21 EST


The remove call stack is missing idxd cleanup to free bitmap, ida and
the idxd_device. Call idxd_free() helper routines to make sure we exit
gracefully.

Fixes: bfe1d56091c1 ("dmaengine: idxd: Init and probe for Intel data accelerators")
Cc: stable@xxxxxxxxxxxxxxx
Suggested-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx>
Signed-off-by: Shuai Xue <xueshuai@xxxxxxxxxxxxxxxxx>
---
drivers/dma/idxd/init.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c
index 890b2bbd2c5e..ecb8d534fac4 100644
--- a/drivers/dma/idxd/init.c
+++ b/drivers/dma/idxd/init.c
@@ -1337,6 +1337,7 @@ static void idxd_remove(struct pci_dev *pdev)
destroy_workqueue(idxd->wq);
perfmon_pmu_remove(idxd);
put_device(idxd_confdev(idxd));
+ idxd_free(idxd);
}

static struct pci_driver idxd_pci_driver = {
--
2.39.3