]> git.baikalelectronics.ru Git - kernel.git/commit
net: mvpp2: fix mvpp2 debugfs leak
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 3 Oct 2022 16:19:27 +0000 (17:19 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 3 Oct 2022 23:53:46 +0000 (16:53 -0700)
commit05dabc8cb63e3892361605016fa2248efd1277ae
treea2a024126489a7d2a3a5e6d5d32d83fc0e49c1e0
parent013cb8a63fc4913053ca3d07308e28d406f8441f
net: mvpp2: fix mvpp2 debugfs leak

When mvpp2 is unloaded, the driver specific debugfs directory is not
removed, which technically leads to a memory leak. However, this
directory is only created when the first device is probed, so the
hardware is present. Removing the module is only something a developer
would to when e.g. testing out changes, so the module would be
reloaded. So this memory leak is minor.

The original attempt in commit 5f23e1396e1f ("net: mvpp2: debugfs: fix
memory leak when using debugfs_lookup()") that was labelled as a memory
leak fix was not, it fixed a refcount leak, but in doing so created a
problem when the module is reloaded - the directory already exists, but
mvpp2_root is NULL, so we lose all debugfs entries. This fix has been
reverted.

This is the alternative fix, where we remove the offending directory
whenever the driver is unloaded.

Fixes: a8fd6ab05737 ("net: mvpp2: add a debugfs interface for the Header Parser")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Marcin Wojtas <mw@semihalf.com>
Link: https://lore.kernel.org/r/E1ofOAB-00CzkG-UO@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/mvpp2/mvpp2.h
drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c