From: Sasha Levin sashal@kernel.org
commit 6052a4c11fd893234e085edf7bf2e00a33a79d4e upstream.
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 Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
--- 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 *p
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);