]> www.infradead.org Git - users/dwmw2/linux.git/commit
irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled
authorMarc Zyngier <maz@kernel.org>
Sat, 15 Feb 2025 18:52:41 +0000 (18:52 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 17 Feb 2025 21:41:06 +0000 (22:41 +0100)
commit4cb77793842a351b39a030f77caebace3524840e
treeefb91dd2362c0bfaba61f37d92c0686d985443cd
parent0ad2507d5d93f39619fc42372c347d6006b64319
irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled

Christoph reports that their rk3399 system dies since commit 773c05f417fa1
("irqchip/gic-v3: Work around insecure GIC integrations").

It appears that some rk3399 have secure payloads, and that the firmware
sets SCR_EL3.FIQ==1. Obivously, disabling security in that configuration
leads to even more problems.

Revisit the workaround by:

  - making it rk3399 specific
  - checking whether Group-0 is available, which is a good proxy
    for SCR_EL3.FIQ being 0
  - either apply the workaround if Group-0 is available, or disable
    pseudo-NMIs if not

Note that this doesn't mean that the secure side is able to receive
interrupts, as all interrupts are made non-secure anyway.

Clearly, nobody ever tested secure interrupts on this platform.

Fixes: 773c05f417fa1 ("irqchip/gic-v3: Work around insecure GIC integrations")
Reported-by: Christoph Fritz <chf.fritz@googlemail.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Christoph Fritz <chf.fritz@googlemail.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/20250215185241.3768218-1-maz@kernel.org
Closes: https://lore.kernel.org/r/b1266652fb64857246e8babdf268d0df8f0c36d9.camel@googlemail.com
drivers/irqchip/irq-gic-v3.c