Messages in this thread | | | Date | Fri, 02 Sep 2022 16:01:36 +0200 | From | Michael Walle <> | Subject | Re: [PATCH] mtd: spi-nor: fix memory leak when using debugfs_lookup() |
| |
Hi,
Am 2022-09-02 15:37, schrieb Greg Kroah-Hartman: > When calling debugfs_lookup() the result must have dput() called on it, > otherwise the memory will leak over time. Fix this up to be much > simpler logic and only create the root debugfs directory once when the > driver is first accessed. That resolves the memory leak and makes > things more obvious as to what the intent is. > > Cc: Tudor Ambarus <tudor.ambarus@microchip.com> > Cc: Pratyush Yadav <pratyush@kernel.org> > Cc: Michael Walle <michael@walle.cc> > Cc: Miquel Raynal <miquel.raynal@bootlin.com> > Cc: Richard Weinberger <richard@nod.at> > Cc: Vignesh Raghavendra <vigneshr@ti.com> > Cc: linux-mtd@lists.infradead.org > Cc: stable <stable@kernel.org> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > drivers/mtd/spi-nor/debugfs.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/spi-nor/debugfs.c > b/drivers/mtd/spi-nor/debugfs.c > index df76cb5de3f9..3aab595e82d1 100644 > --- a/drivers/mtd/spi-nor/debugfs.c > +++ b/drivers/mtd/spi-nor/debugfs.c > @@ -228,11 +228,11 @@ static void spi_nor_debugfs_unregister(void > *data) > > void spi_nor_debugfs_register(struct spi_nor *nor) > { > - struct dentry *rootdir, *d; > + static struct dentry *rootdir; > + struct dentry *d; > int ret; > > /* Create rootdir once. Will never be deleted again. */ > - rootdir = debugfs_lookup(SPI_NOR_DEBUGFS_ROOT, NULL);
IIRC I had that one and it didn't work with spi-nor as a module. Wouldn't it try to create the root dir twice if you remove the module and load it again?
-michael
> if (!rootdir) > rootdir = debugfs_create_dir(SPI_NOR_DEBUGFS_ROOT, NULL);
| |