[PATCH] ARM: Drop custom mdesc->handle_irq()

Arnd Bergmann arnd at arndb.de
Thu Apr 27 08:19:43 PDT 2023


On Wed, Apr 26, 2023, at 09:57, Linus Walleij wrote:
> ARM exclusively uses GENERIC_IRQ_MULTI_HANDLER, so at some point
> set_handle_irq() needs to be called to handle system-wide
> interrupts.
>
> For all DT-enabled boards, this call happens down in the
> drivers/irqchip subsystem, after locating the target irqchip
> driver from the device tree.
>
> We still have a few instances of the boardfiles with machine
> descriptors passing a machine-specific .handle_irq() to the
> ARM kernel core.
>
> Get rid of this by letting the few remaining machines consistently
> call set_handle_irq() from the end of the .init_irq() callback
> instead and diet down one member from the machine descriptor.
>
> Cc: Marc Zyngier <maz at kernel.org>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>

Looks great, but I think I found one bug:

> @@ -472,7 +478,7 @@ static const char *const mxs_dt_compat[] __initconst = {
>  };
> 
>  DT_MACHINE_START(MXS, "Freescale MXS (Device Tree)")
> -	.handle_irq	= icoll_handle_irq,
> +	.init_irq	= mxs_init_irq,


I think this bit is wrong, there is aleady an
icoll_of_init() function in drivers/irqchip/irq-mxs.c, overriding
init_irq() will lead to that function no longer getting
called, so the set_handle_irq() call should just get moved there,
like it is in asm9260_of_init().

With that fixed,

Reviewed-by: Arnd Bergmann <arnd at arndb.de>



More information about the linux-arm-kernel mailing list