Revert "net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()"
authorSasha Levin <sashal@kernel.org>
Fri, 23 Sep 2022 23:47:36 +0000 (19:47 -0400)
committerJakub Kicinski <kuba@kernel.org>
Mon, 26 Sep 2022 17:06:34 +0000 (10:06 -0700)
This reverts commit fe2c9c61f668cde28dac2b188028c5299cedcc1e.

On Tue, Sep 13, 2022 at 05:48:58PM +0100, Russell King (Oracle) wrote:
>What happens if this is built as a module, and the module is loaded,
>binds (and creates the directory), then is removed, and then re-
>inserted?  Nothing removes the old directory, so doesn't
>debugfs_create_dir() fail, resulting in subsequent failure to add
>any subsequent debugfs entries?
>
>I don't think this patch should be backported to stable trees until
>this point is addressed.

Revert until a proper fix is available as the original behavior was
better.

Cc: Marcin Wojtas <mw@semihalf.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: stable@kernel.org
Reported-by: Russell King <linux@armlinux.org.uk>
Fixes: fe2c9c61f668 ("net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20220923234736.657413-1-sashal@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c

index 0eec05d905eb0fc893d8cb64087beddfb4cbdc1e..4a3baa7e0142416d7ca15d9677362c9c29e5b986 100644 (file)
@@ -700,10 +700,10 @@ void mvpp2_dbgfs_cleanup(struct mvpp2 *priv)
 
 void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name)
 {
-       static struct dentry *mvpp2_root;
-       struct dentry *mvpp2_dir;
+       struct dentry *mvpp2_dir, *mvpp2_root;
        int ret, i;
 
+       mvpp2_root = debugfs_lookup(MVPP2_DRIVER_NAME, NULL);
        if (!mvpp2_root)
                mvpp2_root = debugfs_create_dir(MVPP2_DRIVER_NAME, NULL);