From 8ab668c2797428f975612a75a25a07a56bfd7698 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Mon, 19 Sep 2022 08:26:44 -0400 Subject: [PATCH] Fixes for 5.15 Signed-off-by: Sasha Levin --- ...s-fix-memory-leak-when-using-debugfs.patch | 51 +++++++++++++++++++ queue-5.15/series | 1 + 2 files changed, 52 insertions(+) create mode 100644 queue-5.15/net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch diff --git a/queue-5.15/net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch b/queue-5.15/net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch new file mode 100644 index 00000000000..682bee86492 --- /dev/null +++ b/queue-5.15/net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch @@ -0,0 +1,51 @@ +From 4d5aed8bbf924dcfababa60dd1526354b0940d0f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 2 Sep 2022 15:41:11 +0200 +Subject: net: mvpp2: debugfs: fix memory leak when using debugfs_lookup() + +From: Greg Kroah-Hartman + +[ 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 +Cc: Russell King +Cc: "David S. Miller" +Cc: Eric Dumazet +Cc: Jakub Kicinski +Cc: Paolo Abeni +Cc: netdev@vger.kernel.org +Cc: stable +Fixes: 21da57a23125 ("net: mvpp2: add a debugfs interface for the Header Parser") +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +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); + +-- +2.35.1 + diff --git a/queue-5.15/series b/queue-5.15/series index 960b6524d6c..45e36877dfd 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -48,3 +48,4 @@ drm-meson-correct-osd1-global-alpha-value.patch drm-meson-fix-osd1-rgb-to-ycbcr-coefficient.patch block-blk_queue_enter-__bio_queue_enter-must-return-.patch parisc-ccio-dma-add-missing-iounmap-in-error-path-in.patch +net-mvpp2-debugfs-fix-memory-leak-when-using-debugfs.patch -- 2.47.3