Re: Patch "net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()" has been added to the 5.10-stable tree

From: Greg KH
Date: Wed Sep 21 2022 - 02:51:58 EST


On Tue, Sep 20, 2022 at 05:46:25PM -0400, Sasha Levin wrote:
> This is a note to let you know that I've just added the patch titled
>
> net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()
>
> to the 5.10-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
> The filename of the patch is:
> net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch
> and it can be found in the queue-5.10 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.
>
>
>
> commit 24f9e4af2b16c42327cde7198834a5d58aacb2f8
> Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Date: Fri Sep 2 15:41:11 2022 +0200
>
> net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()
>
> [ Upstream commit fe2c9c61f668cde28dac2b188028c5299cedcc1e ]
>
> 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: Marcin Wojtas <mw@xxxxxxxxxxxx>
> Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
> Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
> Cc: Paolo Abeni <pabeni@xxxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx
> Cc: stable <stable@xxxxxxxxxx>
> Fixes: 21da57a23125 ("net: mvpp2: add a debugfs interface for the Header Parser")
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
> index 4a3baa7e0142..0eec05d905eb 100644
> --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
> +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
> @@ -700,10 +700,10 @@ void mvpp2_dbgfs_cleanup(struct mvpp2 *priv)
>
> void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name)
> {
> - struct dentry *mvpp2_dir, *mvpp2_root;
> + static struct dentry *mvpp2_root;
> + struct dentry *mvpp2_dir;
> int ret, i;
>
> - mvpp2_root = debugfs_lookup(MVPP2_DRIVER_NAME, NULL);
> if (!mvpp2_root)
> mvpp2_root = debugfs_create_dir(MVPP2_DRIVER_NAME, NULL);
>

I dropped this at the request of Russell last time around, and will be
fixing this up in a "better" way later this week, so I will drop this
from the stable queues as well.

thanks,

greg k-h