[PATCH] mfd: sm501: Fix potential memory leaks during remove

From: Abdun Nihaal

Date: Mon Jul 20 2026 - 07:47:03 EST


The memory allocated for struct sm501_devdata in sm501_pci_probe() and
sm501_plat_probe() is not freed by the corresponding remove functions
sm501_pci_remove() and sm501_plat_remove(). Fix that by adding a call to
kfree().

Fixes: b6d6454fdb66 ("[PATCH] mfd: SM501 core driver")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Abdun Nihaal <nihaal@xxxxxxxxxxxxxx>
---
Compile tested only. Issue found using static analysis.

drivers/mfd/sm501.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index 49c6b21a44e8..0b802925d6c2 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -1629,6 +1629,7 @@ static void sm501_pci_remove(struct pci_dev *dev)
release_mem_region(sm->io_res->start, 0x100);

pci_disable_device(dev);
+ kfree(sm);
}

static void sm501_plat_remove(struct platform_device *dev)
@@ -1639,6 +1640,7 @@ static void sm501_plat_remove(struct platform_device *dev)
iounmap(sm->regs);

release_mem_region(sm->io_res->start, 0x100);
+ kfree(sm);
}

static const struct pci_device_id sm501_pci_tbl[] = {
--
2.43.0