linux-stable/drivers/irqchip
Marc Zyngier ada54b2e81 irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled
commit 4cb7779384 upstream.

Christoph reports that their rk3399 system dies since commit 773c05f417
("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: 773c05f417 ("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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-02-27 04:30:23 -08:00
..
alphascale_asm9260-icoll.h
exynos-combiner.c
irq-al-fic.c
irq-alpine-msi.c
irq-apple-aic.c irqchip/apple-aic: Only handle PMC interrupt as FIQ when configured so 2025-02-17 10:05:41 +01:00
irq-armada-370-xp.c
irq-aspeed-i2c-ic.c
irq-aspeed-scu-ic.c
irq-aspeed-vic.c
irq-ath79-cpu.c
irq-ath79-misc.c
irq-atmel-aic5.c
irq-atmel-aic-common.c
irq-atmel-aic-common.h
irq-atmel-aic.c
irq-bcm2835.c
irq-bcm2836.c
irq-bcm6345-l1.c
irq-bcm7038-l1.c
irq-bcm7120-l2.c
irq-brcmstb-l2.c
irq-clps711x.c
irq-crossbar.c
irq-csky-apb-intc.c
irq-csky-mpintc.c
irq-davinci-cp-intc.c
irq-digicolor.c
irq-dw-apb-ictl.c
irq-ftintc010.c
irq-gic-common.c
irq-gic-common.h
irq-gic-pm.c
irq-gic-realview.c
irq-gic-v2m.c
irq-gic-v3-its-fsl-mc-msi.c
irq-gic-v3-its-msi-parent.c
irq-gic-v3-its.c irqchip/gic-v3-its: Don't enable interrupts in its_irq_set_vcpu_affinity() 2025-01-23 17:23:02 +01:00
irq-gic-v3-mbi.c
irq-gic-v3.c irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled 2025-02-27 04:30:23 -08:00
irq-gic-v4.c
irq-gic.c
irq-goldfish-pic.c
irq-hip04.c
irq-i8259.c
irq-idt3243x.c
irq-imgpdc.c
irq-imx-gpcv2.c
irq-imx-intmux.c
irq-imx-irqsteer.c
irq-imx-mu-msi.c
irq-ingenic-tcu.c
irq-ingenic.c
irq-ixp4xx.c
irq-jcore-aic.c irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request 2025-02-27 04:30:21 -08:00
irq-keystone.c
irq-lan966x-oic.c
irq-loongarch-avec.c
irq-loongarch-cpu.c
irq-loongson-eiointc.c
irq-loongson-htpic.c
irq-loongson-htvec.c
irq-loongson-liointc.c
irq-loongson-pch-lpc.c
irq-loongson-pch-msi.c
irq-loongson-pch-pic.c
irq-loongson.h
irq-lpc32xx.c
irq-ls1x.c
irq-ls-extirq.c
irq-ls-scfg-msi.c
irq-madera.c
irq-mbigen.c
irq-mchp-eic.c
irq-meson-gpio.c
irq-mips-cpu.c
irq-mips-gic.c
irq-mmp.c
irq-mscc-ocelot.c
irq-msi-lib.c
irq-msi-lib.h
irq-mst-intc.c
irq-mtk-cirq.c
irq-mtk-sysirq.c
irq-mvebu-gicp.c
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Fix access to msi_data from irq_domain::host_data 2025-02-17 10:05:37 +01:00
irq-mvebu-odmi.c
irq-mvebu-pic.c
irq-mvebu-sei.c
irq-mxs.c
irq-nvic.c
irq-omap-intc.c
irq-ompic.c
irq-or1k-pic.c
irq-orion.c
irq-owl-sirq.c
irq-partition-percpu.c
irq-pic32-evic.c
irq-pruss-intc.c
irq-qcom-mpm.c
irq-rda-intc.c
irq-realtek-rtl.c
irq-renesas-intc-irqpin.c
irq-renesas-irqc.c
irq-renesas-rza1.c
irq-renesas-rzg2l.c
irq-riscv-aplic-direct.c
irq-riscv-aplic-main.c
irq-riscv-aplic-main.h
irq-riscv-aplic-msi.c
irq-riscv-imsic-early.c
irq-riscv-imsic-platform.c
irq-riscv-imsic-state.c
irq-riscv-imsic-state.h
irq-riscv-intc.c
irq-sa11x0.c
irq-sifive-plic.c
irq-sl28cpld.c
irq-sni-exiu.c
irq-sp7021-intc.c
irq-st.c
irq-starfive-jh8100-intc.c
irq-stm32-exti.c
irq-stm32mp-exti.c
irq-sun4i.c
irq-sun6i-r.c
irq-sunxi-nmi.c irqchip/sunxi-nmi: Add missing SKIP_WAKE flag 2025-02-01 18:39:36 +01:00
irq-tb10x.c
irq-tegra.c
irq-ti-sci-inta.c
irq-ti-sci-intr.c
irq-ts4800.c
irq-uniphier-aidet.c
irq-versatile-fpga.c
irq-vf610-mscm-ir.c
irq-vic.c
irq-vt8500.c
irq-wpcm450-aic.c
irq-xilinx-intc.c
irq-xtensa-mx.c
irq-xtensa-pic.c
irq-zevio.c
irqchip.c
Kconfig irqchip/lan966x-oic: Make CONFIG_LAN966X_OIC depend on CONFIG_MCHP_LAN966X_PCI 2025-02-17 10:04:42 +01:00
Makefile
qcom-irq-combiner.c
qcom-pdc.c
spear-shirq.c