BACKPORT: FROMGIT: irqchip/gic-v2, v3: Prevent SW resends entirely
The GIC irqchips can now use a HW resend when a retrigger is invoked by check_irq_resend(). However, should the HW resend fail, check_irq_resend() will still attempt to trigger a SW resend, which is still a bad idea for the GICs. Prevent this from happening by setting IRQD_HANDLE_ENFORCE_IRQCTX on all GIC IRQs. Technically per-cpu IRQs do not need this, as their flow handlers never set IRQS_PENDING, but this aligns all IRQs wrt context enforcement: this also forces all GIC IRQ handling to happen in IRQ context (as defined by in_irq()). Signed-off-by:Valentin Schneider <valentin.schneider@arm.com> Signed-off-by:
Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20200730170321.31228-3-valentin.schneider@arm.com Bug: 140053385 (cherry picked from commit 1b57d91b https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/gic-retrigger) (resolved trivial merge conflict in drivers/irqchip/irq-gic.c) Change-Id: I26d068ff58660627b4fd02f2d0483f81f0cd2094 Signed-off-by:
Eric Biggers <ebiggers@google.com>
Loading
Please sign in to comment