Re: [PATCH] of/irq: parse interrupts-extended during irq init heirarchy calculation

From: Ben Dooks
Date: Mon Jul 11 2022 - 03:17:07 EST


On 08/07/2022 22:49, Rob Herring wrote:
On Fri, Jul 8, 2022 at 10:52 AM Ben Dooks <ben.dooks@xxxxxxxxxx> wrote:

When the irq controler code works out the heirarchy for initialialisation
it only looks at interrupt-parent properties, but controllers such as the
RISC-V PLIC use a extended-interrupt property and therefore do not get
properly considered during initialisation.

This means that if anything changes in the driver initialisation order
then the PLIC can get called before the CLINT nodes, and thus interrupts
do not get configured properly and the init continues without noticing
the error until drivers fail due to having no interrupts delivered.

Add code to the of_irq_init that checks for the extended-interrupt
property and adds these parent nodes so that they can be considered
during the calculations of whether an irq controller node can be
initialised.

Isn't this already fixed by commit e91033621d56 ("of/irq: Use
interrupts-extended to find parent")?

I didn't notice that commit, have been holding onto some of these
patches whilst sorting out permission to send.

The only thing my version does better is that it checks all of the
interrupt-extended contents so if there was a system with multiple
parents then we wouldn't consider them.

--
Ben