[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