* [PATCH] mtd: spinand: fix memory leak of ECC engine conf
@ 2025-06-09 18:02 Pablo MARTIN-GOMEZ
2025-06-18 9:10 ` Miquel Raynal
0 siblings, 1 reply; 2+ messages in thread
From: Pablo MARTIN-GOMEZ @ 2025-06-09 18:02 UTC (permalink / raw)
To: Miquel Raynal, Vignesh Raghavendra; +Cc: linux-mtd
Memory allocated for the ECC engine conf is not released during spinand
cleanup. Below kmemleak trace is seen for this memory leak:
unreferenced object 0xffffff80064f00e0 (size 8):
comm "swapper/0", pid 1, jiffies 4294937458
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc+0x30/0x40
__kmalloc_cache_noprof+0x208/0x3c0
spinand_ondie_ecc_init_ctx+0x114/0x200
nand_ecc_init_ctx+0x70/0xa8
nanddev_ecc_engine_init+0xec/0x27c
spinand_probe+0xa2c/0x1620
spi_mem_probe+0x130/0x21c
spi_probe+0xf0/0x170
really_probe+0x17c/0x6e8
__driver_probe_device+0x17c/0x21c
driver_probe_device+0x58/0x180
__device_attach_driver+0x15c/0x1f8
bus_for_each_drv+0xec/0x150
__device_attach+0x188/0x24c
device_initial_probe+0x10/0x20
bus_probe_device+0x11c/0x160
Fix the leak by calling nanddev_ecc_engine_cleanup() inside
spinand_cleanup().
Signed-off-by: Pablo Martin-Gomez <pmartin-gomez@freebox.fr>
---
drivers/mtd/nand/spi/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
index b1df7f627161..a1877bf46550 100644
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1496,6 +1496,7 @@ static void spinand_cleanup(struct spinand_device
*spinand)
{
struct nand_device *nand = spinand_to_nand(spinand);
+ nanddev_ecc_engine_cleanup(nand);
nanddev_cleanup(nand);
spinand_manufacturer_cleanup(spinand);
kfree(spinand->databuf);
--
2.43.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] mtd: spinand: fix memory leak of ECC engine conf
2025-06-09 18:02 [PATCH] mtd: spinand: fix memory leak of ECC engine conf Pablo MARTIN-GOMEZ
@ 2025-06-18 9:10 ` Miquel Raynal
0 siblings, 0 replies; 2+ messages in thread
From: Miquel Raynal @ 2025-06-18 9:10 UTC (permalink / raw)
To: Pablo MARTIN-GOMEZ; +Cc: Vignesh Raghavendra, linux-mtd
Hi Pablo,
On 09/06/2025 at 20:02:08 +02, Pablo MARTIN-GOMEZ <pmartin-gomez@freebox.fr> wrote:
> Memory allocated for the ECC engine conf is not released during spinand
> cleanup. Below kmemleak trace is seen for this memory leak:
>
> unreferenced object 0xffffff80064f00e0 (size 8):
> comm "swapper/0", pid 1, jiffies 4294937458
> hex dump (first 8 bytes):
> 00 00 00 00 00 00 00 00 ........
> backtrace (crc 0):
> kmemleak_alloc+0x30/0x40
> __kmalloc_cache_noprof+0x208/0x3c0
> spinand_ondie_ecc_init_ctx+0x114/0x200
> nand_ecc_init_ctx+0x70/0xa8
> nanddev_ecc_engine_init+0xec/0x27c
> spinand_probe+0xa2c/0x1620
> spi_mem_probe+0x130/0x21c
> spi_probe+0xf0/0x170
> really_probe+0x17c/0x6e8
> __driver_probe_device+0x17c/0x21c
> driver_probe_device+0x58/0x180
> __device_attach_driver+0x15c/0x1f8
> bus_for_each_drv+0xec/0x150
> __device_attach+0x188/0x24c
> device_initial_probe+0x10/0x20
> bus_probe_device+0x11c/0x160
>
> Fix the leak by calling nanddev_ecc_engine_cleanup() inside
> spinand_cleanup().
>
> Signed-off-by: Pablo Martin-Gomez <pmartin-gomez@freebox.fr>
This patch no longer applies on v6.16-rc1, can you please rebase and
resend ?
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-06-18 9:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-09 18:02 [PATCH] mtd: spinand: fix memory leak of ECC engine conf Pablo MARTIN-GOMEZ
2025-06-18 9:10 ` Miquel Raynal
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.