[PATCH] irqchip/apple-aic: fix irq_disable from within irq handlers

Marc Zyngier maz at kernel.org
Fri Aug 20 05:22:18 PDT 2021


On Thu, 12 Aug 2021 12:09:42 +0200, Sven Peter wrote:
> When disable_irq_nosync for an interrupt is called from within its
> interrupt handler, this interrupt is only marked as disabled with the
> intention to mask it when it triggers again.
> The AIC hardware however automatically masks the interrupt when it is read.
> aic_irq_eoi then unmasks it again if it's not disabled *and* not masked.
> This results in a state mismatch between the hardware state and the
> state kept in irq_data: The hardware interrupt is masked but
> IRQD_IRQ_MASKED is not set. Any further calls to unmask_irq will directly
> return and the interrupt can never be enabled again.
> 
> [...]

Applied to irq/misc-5.15, thanks!

[1/1] irqchip/apple-aic: fix irq_disable from within irq handlers
      commit: 0fb038ba08dba0a5e937b79a67ed9c21ab5b59c5

Cheers,

	M.
-- 
Without deviation from the norm, progress is not possible.





More information about the linux-arm-kernel mailing list