mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 17:42:03 +02:00
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:9b454d16e5("ARM: imx: avic: set low-power interrupt mask for imx25") Fixes:544496ab5c("ARM: imx: move irq_domain_add_legacy call into avic driver") Signed-off-by: Yuho Choi <dbgh9129@gmail.com> Reviewed-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Frank Li <Frank.Li@nxp.com>
This commit is contained in:
parent
dc59e4fea9
commit
b24c12e1ba
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user