The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>
Subject: [GIT PULL] IRQ fixes
Date: Sun, 5 Jul 2026 09:26:26 +0200	[thread overview]
Message-ID: <akoHIke6DwB68sMk@gmail.com> (raw)

Linus,

Please pull the latest irq/urgent Git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2026-07-05

for you to fetch changes up to 98bf7e54cec07d514b3575c11896a8b12d50ecc4:

Misc irqchip driver fixes:

 - Fix a resource leak in the RISC-V imsic-early driver
   (Haoxiang Li)

 - Fix an OF node reference leak in the ARM gic-v3-its driver
   (Yuho Choi)

 - Fix a dangling handler function on module removal bug in
   the TS-4800 ARM board irqchip driver (Qingshuang Fu)

 Thanks,

	Ingo

------------------>
Haoxiang Li (1):
      irqchip/irq-riscv-imsic-early: Fix fwnode leak on state setup failure

Qingshuang Fu (1):
      irqchip/ts4800: Fix missing chained handler cleanup on remove

Yuho Choi (1):
      irqchip/gic-v3-its: Fix OF node reference leak


 drivers/irqchip/irq-gic-v3-its.c        |  6 ++----
 drivers/irqchip/irq-riscv-imsic-early.c | 15 ++++++++-------
 drivers/irqchip/irq-ts4800.c            | 10 ++++++++++
 3 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index b57d81ad33a0..6f5811aae59c 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -3290,11 +3290,9 @@ static void its_cpu_init_collection(struct its_node *its)
 
 	/* avoid cross node collections and its mapping */
 	if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) {
-		struct device_node *cpu_node;
+		struct device_node *cpu_node __free(device_node) = of_get_cpu_node(cpu, NULL);
 
-		cpu_node = of_get_cpu_node(cpu, NULL);
-		if (its->numa_node != NUMA_NO_NODE &&
-			its->numa_node != of_node_to_nid(cpu_node))
+		if (its->numa_node != NUMA_NO_NODE && its->numa_node != of_node_to_nid(cpu_node))
 			return;
 	}
 
diff --git a/drivers/irqchip/irq-riscv-imsic-early.c b/drivers/irqchip/irq-riscv-imsic-early.c
index a7a1852b548c..12efd241ce88 100644
--- a/drivers/irqchip/irq-riscv-imsic-early.c
+++ b/drivers/irqchip/irq-riscv-imsic-early.c
@@ -272,16 +272,13 @@ static int __init imsic_early_acpi_init(union acpi_subtable_headers *header,
 	rc = imsic_setup_state(imsic_acpi_fwnode, imsic);
 	if (rc) {
 		pr_err("%pfwP: failed to setup state (error %d)\n", imsic_acpi_fwnode, rc);
-		return rc;
+		goto cleanup;
 	}
 
 	/* Do early setup of IMSIC state and IPIs */
 	rc = imsic_early_probe(imsic_acpi_fwnode);
-	if (rc) {
-		irq_domain_free_fwnode(imsic_acpi_fwnode);
-		imsic_acpi_fwnode = NULL;
-		return rc;
-	}
+	if (rc)
+		goto cleanup;
 
 	rc = imsic_platform_acpi_probe(imsic_acpi_fwnode);
 
@@ -300,8 +297,12 @@ static int __init imsic_early_acpi_init(union acpi_subtable_headers *header,
 	 * DT where IPI works but MSI probe fails for some reason.
 	 */
 	return 0;
-}
 
+cleanup:
+	irq_domain_free_fwnode(imsic_acpi_fwnode);
+	imsic_acpi_fwnode = NULL;
+	return rc;
+}
 IRQCHIP_ACPI_DECLARE(riscv_imsic, ACPI_MADT_TYPE_IMSIC, NULL,
 		     1, imsic_early_acpi_init);
 #endif
diff --git a/drivers/irqchip/irq-ts4800.c b/drivers/irqchip/irq-ts4800.c
index 2e4013c6834d..c7c0b155e353 100644
--- a/drivers/irqchip/irq-ts4800.c
+++ b/drivers/irqchip/irq-ts4800.c
@@ -28,6 +28,7 @@ struct ts4800_irq_data {
 	void __iomem            *base;
 	struct platform_device	*pdev;
 	struct irq_domain       *domain;
+	unsigned int            parent_irq;
 };
 
 static void ts4800_irq_mask(struct irq_data *d)
@@ -134,6 +135,7 @@ static int ts4800_ic_probe(struct platform_device *pdev)
 	irq_set_chained_handler_and_data(parent_irq,
 					 ts4800_ic_chained_handle_irq, data);
 
+	data->parent_irq = parent_irq;
 	platform_set_drvdata(pdev, data);
 
 	return 0;
@@ -142,6 +144,14 @@ static int ts4800_ic_probe(struct platform_device *pdev)
 static void ts4800_ic_remove(struct platform_device *pdev)
 {
 	struct ts4800_irq_data *data = platform_get_drvdata(pdev);
+	unsigned int hwirq;
+
+	irq_set_chained_handler_and_data(data->parent_irq, NULL, NULL);
+
+	for (hwirq = 0; hwirq < 8; hwirq++)
+		irq_dispose_mapping(irq_find_mapping(data->domain, hwirq));
+
+	irq_dispose_mapping(data->parent_irq);
 
 	irq_domain_remove(data->domain);
 }

             reply	other threads:[~2026-07-05  7:26 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-05  7:26 Ingo Molnar [this message]
2026-07-05 15:46 ` [GIT PULL] IRQ fixes pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2026-06-23 16:55 Ingo Molnar
2026-06-24  0:20 ` pr-tracker-bot
2026-05-24  6:52 Ingo Molnar
2026-05-24 20:12 ` pr-tracker-bot
2026-05-17  6:20 Ingo Molnar
2026-05-17 19:28 ` pr-tracker-bot
2026-03-29  5:10 Ingo Molnar
2026-03-29 17:29 ` pr-tracker-bot
2026-03-15  2:59 Ingo Molnar
2026-03-15 18:47 ` pr-tracker-bot
2026-03-01  8:48 Ingo Molnar
2026-03-01 21:37 ` pr-tracker-bot
2026-02-01  8:40 Ingo Molnar
2026-02-01 19:46 ` pr-tracker-bot
2026-01-24  9:20 Ingo Molnar
2026-01-24 18:00 ` pr-tracker-bot
2026-01-11 10:22 Ingo Molnar
2026-01-12 19:38 ` pr-tracker-bot
2025-12-12  9:33 Ingo Molnar
2025-12-13 18:12 ` pr-tracker-bot
2025-05-17 13:37 Ingo Molnar
2025-05-17 16:27 ` pr-tracker-bot
2025-05-04  7:08 Ingo Molnar
2025-05-04 15:23 ` pr-tracker-bot
2025-04-18 20:26 Ingo Molnar
2025-04-18 21:15 ` pr-tracker-bot
2025-04-10 21:38 Ingo Molnar
2025-04-10 22:52 ` pr-tracker-bot
2025-02-22 13:48 Ingo Molnar
2025-02-22 19:23 ` pr-tracker-bot
2024-06-08  7:52 Ingo Molnar
2024-06-08 16:50 ` pr-tracker-bot
2022-08-21 21:10 Ingo Molnar
2022-08-21 23:13 ` pr-tracker-bot
2021-07-11 13:40 Ingo Molnar
2021-07-11 18:22 ` pr-tracker-bot
2020-08-03 10:54 Ingo Molnar
2020-08-03 22:10 ` pr-tracker-bot
2019-06-29  8:50 Ingo Molnar
2019-06-29 11:45 ` pr-tracker-bot
2019-04-12 11:52 Ingo Molnar
2019-04-13  4:05 ` pr-tracker-bot
2019-02-10  9:08 Ingo Molnar
2019-02-10 18:30 ` pr-tracker-bot
2018-11-03 22:59 Ingo Molnar
2018-11-04  1:13 ` Linus Torvalds
2017-12-06 22:09 Ingo Molnar
2017-10-14 15:57 Ingo Molnar
2017-09-24 11:21 Ingo Molnar
2017-09-12 15:30 Ingo Molnar
2017-07-21 10:07 [GIT PULL] irq fixes Ingo Molnar
2017-02-11 18:06 [GIT PULL] IRQ fixes Ingo Molnar
2016-10-22 10:40 Ingo Molnar
2016-10-18 10:18 [GIT PULL] irq fixes Ingo Molnar
2016-07-08 13:37 Ingo Molnar
2016-04-23 11:15 Ingo Molnar
2016-01-31  9:01 [GIT PULL] IRQ fixes Ingo Molnar
2015-07-18  2:36 [GIT PULL] irq fixes Ingo Molnar
2015-02-20 13:35 [GIT PULL] IRQ fixes Ingo Molnar
2012-02-27 10:26 [GIT PULL] irq fixes Ingo Molnar
2011-09-30 18:16 Ingo Molnar
2011-09-30 18:35 ` Josh Boyer
2011-09-30 19:43 ` Thomas Gleixner
2011-06-07 18:48 Ingo Molnar
2011-03-25 13:03 Ingo Molnar
2011-03-18 13:49 Ingo Molnar
2011-02-22 16:19 Ingo Molnar
2011-02-06 11:58 Ingo Molnar
2010-03-26 15:09 Ingo Molnar
2009-06-20 17:26 [GIT PULL] IRQ fixes Ingo Molnar
2009-04-26 17:13 [GIT PULL] irq fixes Ingo Molnar
2009-04-09 15:39 Ingo Molnar
2009-01-30 23:10 [git pull] " Ingo Molnar
2009-01-06 16:13 Ingo Molnar
2008-11-29 19:41 Ingo Molnar
2008-10-21 14:14 Ingo Molnar

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=akoHIke6DwB68sMk@gmail.com \
    --to=mingo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox