aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irqchip.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2025-01-19 09:04:33 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2025-01-19 09:04:33 -0800
commitb031457ab15dacb47d714ee872e724f1aa6a1b30 (patch)
tree50ac5ee533d45f68719327a4b4f3fd4832d8ca78 /drivers/irqchip/irqchip.c
parentMerge tag 'sched_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kern... (diff)
parentirqchip: Plug a OF node reference leak in platform_irqchip_probe() (diff)
downloadlinux-b031457ab15dacb47d714ee872e724f1aa6a1b30.tar.gz
linux-b031457ab15dacb47d714ee872e724f1aa6a1b30.zip
Merge tag 'irq_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Borislav Petkov: - Fix an OF node leak in irqchip init's error handling path - Fix sunxi systems to wake up from suspend with an NMI by pressing the power button - Do not spuriously enable interrupts in gic-v3 in a nested interrupts-off section - Make sure gic-v3 handles properly a failure to enter a low power state * tag 'irq_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip: Plug a OF node reference leak in platform_irqchip_probe() irqchip/sunxi-nmi: Add missing SKIP_WAKE flag irqchip/gic-v3-its: Don't enable interrupts in its_irq_set_vcpu_affinity() irqchip/gic-v3: Handle CPU_PM_ENTER_FAILED correctly
Diffstat (limited to 'drivers/irqchip/irqchip.c')
-rw-r--r--drivers/irqchip/irqchip.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/irqchip/irqchip.c b/drivers/irqchip/irqchip.c
index 1eeb0d0156ce..0ee7b6b71f5f 100644
--- a/drivers/irqchip/irqchip.c
+++ b/drivers/irqchip/irqchip.c
@@ -35,11 +35,10 @@ void __init irqchip_init(void)
int platform_irqchip_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
- struct device_node *par_np = of_irq_find_parent(np);
+ struct device_node *par_np __free(device_node) = of_irq_find_parent(np);
of_irq_init_cb_t irq_init_cb = of_device_get_match_data(&pdev->dev);
if (!irq_init_cb) {
- of_node_put(par_np);
return -EINVAL;
}
@@ -55,7 +54,6 @@ int platform_irqchip_probe(struct platform_device *pdev)
* interrupt controller can check for specific domains as necessary.
*/
if (par_np && !irq_find_matching_host(par_np, DOMAIN_BUS_ANY)) {
- of_node_put(par_np);
return -EPROBE_DEFER;
}