hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/irqchip/irqchip.c
....@@ -38,8 +38,10 @@
3838 struct device_node *par_np = of_irq_find_parent(np);
3939 of_irq_init_cb_t irq_init_cb = of_device_get_match_data(&pdev->dev);
4040
41
- if (!irq_init_cb)
41
+ if (!irq_init_cb) {
42
+ of_node_put(par_np);
4243 return -EINVAL;
44
+ }
4345
4446 if (par_np == np)
4547 par_np = NULL;
....@@ -52,8 +54,10 @@
5254 * interrupt controller. The actual initialization callback of this
5355 * interrupt controller can check for specific domains as necessary.
5456 */
55
- if (par_np && !irq_find_matching_host(par_np, DOMAIN_BUS_ANY))
57
+ if (par_np && !irq_find_matching_host(par_np, DOMAIN_BUS_ANY)) {
58
+ of_node_put(par_np);
5659 return -EPROBE_DEFER;
60
+ }
5761
5862 return irq_init_cb(np, par_np);
5963 }