Skip to content

Commit 6ba51b7

Browse files
geerturobherring
authored andcommitted
of/irq: Handle explicit interrupt parent
If an interrupt controller is used as a proxy, it may have an "interrupt-parent" property, but lack "interrupts" and "interrupts-extended" properties. In that case, the "interrupt-parent" property in the interrupt controller node is ignored, causing the interrupt controller to fail to probe, and leading to system boot failures or crashes. Fix this by also considering an explicit "interrupt-parent" property in the interrupt controller node itself. Fixes: 1b1f04d ("of/irq: Ignore interrupt parent for nodes without interrupts") Reported-by: Marek Szyprowski <m.szyprowski@samsung.com> Closes: https://lore.kernel.org/20251118115037.1866871-1-m.szyprowski@samsung.com Reported-by: Mark Brown <broonie@kernel.org> Closes: https://lore.kernel.org/b037f67a-b241-4689-9914-57ff578c1454@sirena.org.uk Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Mark Brown <broonie@kernel.org> Link: https://patch.msgid.link/e89669c9b3a4fbac4a972ffadcbe00fddb365472.1763557994.git.geert+renesas@glider.be Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
1 parent d8c8a57 commit 6ba51b7

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

drivers/of/irq.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,8 @@ void __init of_irq_init(const struct of_device_id *matches)
595595
desc->interrupt_parent = of_parse_phandle(np, "interrupts-extended", 0);
596596
if (!desc->interrupt_parent && of_property_present(np, "interrupts"))
597597
desc->interrupt_parent = of_irq_find_parent(np);
598+
else if (!desc->interrupt_parent)
599+
desc->interrupt_parent = of_parse_phandle(np, "interrupt-parent", 0);
598600
if (desc->interrupt_parent == np) {
599601
of_node_put(desc->interrupt_parent);
600602
desc->interrupt_parent = NULL;

0 commit comments

Comments
 (0)