From b24c12e1bad863d27141e4e9c19d25eebd68c4a6 Mon Sep 17 00:00:00 2001 From: Yuho Choi Date: Mon, 15 Jun 2026 13:45:35 -0400 Subject: [PATCH] ARM: imx: avic: Fix OF node reference leaks of_find_compatible_node() returns a device node with its reference count incremented. mxc_init_irq() looks up the i.MX25 CCM node for of_iomap() and the AVIC node for irq_domain_create_legacy(), but does not release either temporary reference. of_iomap() does not consume the node reference, and irq_domain_create_legacy() takes its own fwnode reference for the domain. Drop the temporary OF node references after each use. Fixes: 9b454d16e57d ("ARM: imx: avic: set low-power interrupt mask for imx25") Fixes: 544496ab5cbd ("ARM: imx: move irq_domain_add_legacy call into avic driver") Signed-off-by: Yuho Choi Reviewed-by: Martin Kaiser Signed-off-by: Frank Li --- arch/arm/mach-imx/avic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-imx/avic.c b/arch/arm/mach-imx/avic.c index 3067c06b4b8e..6873a50bbe2c 100644 --- a/arch/arm/mach-imx/avic.c +++ b/arch/arm/mach-imx/avic.c @@ -173,6 +173,7 @@ static void __init mxc_init_irq(void __iomem *irqbase) np = of_find_compatible_node(NULL, NULL, "fsl,imx25-ccm"); mx25_ccm_base = of_iomap(np, 0); + of_node_put(np); if (mx25_ccm_base) { /* @@ -203,6 +204,7 @@ static void __init mxc_init_irq(void __iomem *irqbase) np = of_find_compatible_node(NULL, NULL, "fsl,avic"); domain = irq_domain_create_legacy(of_fwnode_handle(np), AVIC_NUM_IRQS, irq_base, 0, &irq_domain_simple_ops, NULL); + of_node_put(np); WARN_ON(!domain); for (i = 0; i < AVIC_NUM_IRQS / 32; i++, irq_base += 32)