[ISSUE + PATCH] Interrupts were enabled early by spinlock guard

Thomas Gleixner tglx at linutronix.de
Sat Aug 23 12:33:48 PDT 2025


On Thu, Aug 14 2025 at 17:28, Edgar Bonet wrote:
>> I think the conversions in
>> drivers/irqchip/irq-atmel-aic.c:aic_irq_domain_xlate() and
>> drivers/irqchip/irq-loongson-liointc.c:liointc_set_type()
>> are also wrong, and need a similar change.

> The one in irq-atmel-aic.c looks indeed strikingly similar.

Yes. My bad.

I missed the fact, that this can be invoked during early boot when
interrupts are still disabled. After early boot they are always enabled
when xlate() is invoked.

> The one in irq-loongson-liointc.c is slightly different
> though. Instead of:
>
>     irq_gc_lock_irqsave() -> guard(raw_spinlock_irq)
>
> it does:
>
>     irq_gc_lock_irqsave() -> guard(raw_spinlock)
>
> I don't know what the implications are though.

That's in the set_type() callback which is always invoked with the
interrupt decriptor lock held and interrupts disabled, so doing the
'save/restore' dance there is pointless.

Can you send a patch for that atmel-aic thing too please?

Thanks,

        tglx



More information about the linux-arm-kernel mailing list