From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Thomas Gleixner <tglx@linutronix.de>,
Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-kernel@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH 2/2] genirq: proc: fix a procfs entry leak
Date: Mon, 14 Aug 2023 11:36:21 +0200 [thread overview]
Message-ID: <20230814093621.23209-3-brgl@bgdev.pl> (raw)
In-Reply-To: <20230814093621.23209-1-brgl@bgdev.pl>
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
When removing the proc entry for a desc that still has active users, we
will leak the irqaction entries. Let's remove them in
unregister_irq_proc().
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
kernel/irq/proc.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 83ed403991c6..b284604a091a 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -390,6 +390,15 @@ void register_irq_proc(unsigned int irq, struct irq_desc *desc)
mutex_unlock(®ister_lock);
}
+static void unregister_action_proc(struct irqaction *action)
+{
+ if (!action)
+ return;
+
+ unregister_action_proc(action->secondary);
+ unregister_handler_proc(action);
+}
+
void unregister_irq_proc(unsigned int irq, struct irq_desc *desc)
{
char name [MAX_NAMELEN];
@@ -408,6 +417,12 @@ void unregister_irq_proc(unsigned int irq, struct irq_desc *desc)
#endif
remove_proc_entry("spurious", desc->dir);
+ /*
+ * If at this point, this irq desc is still requested, we need to
+ * remove the proc handler entries or we'll leak them.
+ */
+ unregister_action_proc(desc->action);
+
sprintf(name, "%u", irq);
remove_proc_entry(name, root_irq_dir);
}
--
2.39.2
next prev parent reply other threads:[~2023-08-14 9:37 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-14 9:36 [PATCH 0/2] genirq: don't leak handler procfs entries Bartosz Golaszewski
2023-08-14 9:36 ` [PATCH 1/2] genirq: proc: drop unused argument from unregister_handler_proc() Bartosz Golaszewski
2023-08-14 9:36 ` Bartosz Golaszewski [this message]
2023-08-24 20:12 ` [PATCH 2/2] genirq: proc: fix a procfs entry leak Thomas Gleixner
2023-08-25 7:36 ` brgl
2023-08-25 8:11 ` Thomas Gleixner
2023-08-25 11:01 ` Bartosz Golaszewski
2023-08-25 14:58 ` Thomas Gleixner
2023-08-25 17:08 ` Thomas Gleixner
2023-08-25 20:07 ` Bartosz Golaszewski
2023-08-26 15:08 ` Thomas Gleixner
2023-08-28 10:06 ` Bartosz Golaszewski
2023-08-28 12:41 ` Thomas Gleixner
2023-08-28 19:03 ` Bartosz Golaszewski
2023-08-28 21:44 ` Thomas Gleixner
2023-08-29 6:26 ` Bartosz Golaszewski
2023-08-29 9:11 ` Thomas Gleixner
2023-08-29 12:24 ` Bartosz Golaszewski
2023-08-29 20:18 ` Greg Kroah-Hartman
2023-08-29 22:29 ` Thomas Gleixner
2023-09-06 14:54 ` Bartosz Golaszewski
2023-09-12 18:16 ` Thomas Gleixner
2023-09-15 19:50 ` Bartosz Golaszewski
2023-11-13 20:53 ` Bartosz Golaszewski
2023-11-14 12:27 ` Greg Kroah-Hartman
2023-11-14 13:25 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230814093621.23209-3-brgl@bgdev.pl \
--to=brgl@bgdev.pl \
--cc=bartosz.golaszewski@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.