Commit 50f98784 authored by Valentin Schneider's avatar Valentin Schneider Committed by Eric Biggers
Browse files

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: default avatarValentin Schneider <valentin.schneider@arm.com>
Signed-off-by: default avatarMarc 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: default avatarEric Biggers <ebiggers@google.com>
parent 0dcd0fd8
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment