Centos-kernel-stream-9/drivers/irqchip
Charles Mirabile 0129dfe7bf irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled
JIRA: https://issues.redhat.com/browse/RHEL-62922

commit 4cb77793842a351b39a030f77caebace3524840e
Author: Marc Zyngier <maz@kernel.org>
Date: Sat, 15 Feb 2025 18:52:41 +0000

    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

Signed-off-by: Charles Mirabile <cmirabil@redhat.com>
2025-02-27 15:18:10 -05:00
..
Kconfig irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4 2023-06-22 16:50:51 -04:00
Makefile
alphascale_asm9260-icoll.h
exynos-combiner.c Merge branch irq/generic_handle_domain_irq-core into irq/irqchip-next 2021-06-11 14:32:12 +01:00
irq-al-fic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-alpine-msi.c irqchip/alpine-msi: Use irq_domain_add_hierarchy() 2023-04-07 07:31:52 -04:00
irq-apple-aic.c irqchip/apple-aic: Move PMU-specific registers to their own include file 2023-07-13 10:25:55 -04:00
irq-armada-370-xp.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-aspeed-i2c-ic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-aspeed-scu-ic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-aspeed-vic.c
irq-ath79-cpu.c
irq-ath79-misc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ativic32.c
irq-atmel-aic-common.c
irq-atmel-aic-common.h
irq-atmel-aic.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-atmel-aic5.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-bcm2835.c irq: remove handle_domain_{irq,nmi}() 2022-09-02 09:43:56 -04:00
irq-bcm2836.c irq: remove handle_domain_{irq,nmi}() 2022-09-02 09:43:56 -04:00
irq-bcm6345-l1.c genirq: Add and use an irq_data_update_affinity helper 2023-04-07 07:31:47 -04:00
irq-bcm7038-l1.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-bcm7120-l2.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-brcmstb-l2.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-clps711x.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-crossbar.c
irq-csky-apb-intc.c
irq-csky-mpintc.c
irq-davinci-aintc.c
irq-davinci-cp-intc.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-digicolor.c
irq-dw-apb-ictl.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ftintc010.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-gic-common.c irqchip/gic-v3: Make distributor priorities variables 2025-02-27 15:18:07 -05:00
irq-gic-common.h irqchip/gic-v3: Make distributor priorities variables 2025-02-27 15:18:07 -05:00
irq-gic-pm.c irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() 2023-04-07 07:31:43 -04:00
irq-gic-realview.c
irq-gic-v2m.c irqchip/gic-v2m: Fix refcount leak in gicv2m_of_init() 2025-02-27 15:18:09 -05:00
irq-gic-v3-its-fsl-mc-msi.c
irq-gic-v3-its-pci-msi.c PCI/MSI: Make pci_msi_domain_write_msg() static 2023-01-10 09:02:31 -07:00
irq-gic-v3-its-platform-msi.c
irq-gic-v3-its.c irqchip/gic-v3-its: Rely on genpool alignment 2025-02-27 15:18:09 -05:00
irq-gic-v3-mbi.c iommu/dma: Move public interfaces to linux/iommu.h 2023-05-03 06:22:52 -07:00
irq-gic-v3.c irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled 2025-02-27 15:18:10 -05:00
irq-gic-v4.c irqchip/gic-v4.1: Replace bare number with ID_AA64PFR0_EL1_GIC_V4P1 2025-02-27 15:18:09 -05:00
irq-gic.c irqchip/gic: Correct declaration of *percpu_base pointer in union gic_base 2025-02-27 15:18:10 -05:00
irq-goldfish-pic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-hip04.c irqchip/gic-v3: Make distributor priorities variables 2025-02-27 15:18:07 -05:00
irq-i8259.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-idt3243x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-imgpdc.c Merge branch irq/generic_handle_domain_irq-core into irq/irqchip-next 2021-06-11 14:32:12 +01:00
irq-imx-gpcv2.c irqchip/irq-imx-gpcv2: Mark fwnode device as not initialized 2023-04-12 18:53:58 -04:00
irq-imx-intmux.c irqchip/imx-intmux: Move PM device over to irq domain 2023-03-13 09:52:40 -04:00
irq-imx-irqsteer.c irqchip/imx-irqsteer: Add runtime PM support 2023-04-12 18:53:48 -04:00
irq-ingenic-tcu.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ingenic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ixp4xx.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-jcore-aic.c
irq-keystone.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2024-11-27 09:40:24 +08:00
irq-loongson-htpic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-loongson-htvec.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-loongson-liointc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-loongson-pch-msi.c
irq-loongson-pch-pic.c
irq-lpc32xx.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ls-extirq.c
irq-ls-scfg-msi.c iommu/dma: Move public interfaces to linux/iommu.h 2023-05-03 06:22:52 -07:00
irq-ls1x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-madera.c
irq-mbigen.c irqchip/mbigen: move to use bus_get_dev_root() 2023-11-01 11:12:30 -05:00
irq-meson-gpio.c
irq-mips-cpu.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-mips-gic.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-mmp.c
irq-mscc-ocelot.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-mst-intc.c
irq-mtk-cirq.c irqchip/irq-mtk-cirq: Add support for System CIRQ on MT8192 2023-04-07 07:31:45 -04:00
irq-mtk-sysirq.c
irq-mvebu-gicp.c
irq-mvebu-icu.c platform-msi: Rename functions and clarify comments 2023-03-13 09:52:32 -04:00
irq-mvebu-odmi.c irqchip/mvebu-odmi: Use irq_domain_create_hierarchy() 2023-04-07 07:31:52 -04:00
irq-mvebu-pic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-mvebu-sei.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-mxs.c
irq-nvic.c irqchip/nvic: Convert from handle_IRQ() to handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-omap-intc.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-ompic.c
irq-or1k-pic.c
irq-orion.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-owl-sirq.c
irq-partition-percpu.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-pic32-evic.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-pruss-intc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-rda-intc.c
irq-realtek-rtl.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-renesas-h8s.c
irq-renesas-h8300h.c
irq-renesas-intc-irqpin.c irqchip/renesas-intc-irqpin: Move PM device over to irq domain 2024-04-25 12:09:59 -04:00
irq-renesas-irqc.c irqchip/renesas-irqc: Use platform_get_irq_optional() to get the interrupt 2024-07-12 16:54:26 -04:00
irq-renesas-rza1.c
irq-riscv-intc.c
irq-sa11x0.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-sifive-plic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-sl28cpld.c irqchip/sl28cpld: Replace irqchip mask_invert with unmask_base 2023-04-07 07:31:44 -04:00
irq-sni-exiu.c
irq-st.c irqchip/st: Use device_get_match_data() to simplify the code 2023-04-07 07:31:43 -04:00
irq-stm32-exti.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-sun4i.c irqchip/sun4i: Remove unnecessary oom message 2021-06-11 14:19:51 +01:00
irq-sun6i-r.c minmax: don't use max() in situations that want a C constant expression 2024-11-18 10:30:14 -03:00
irq-sunxi-nmi.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-tb10x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-tegra.c irqchip/tegra: Fix overflow implicit truncation warnings 2023-05-08 12:17:13 -04:00
irq-ti-sci-inta.c soc: ti: ti_sci_inta_msi: Use msi_desc::msi_index 2023-03-13 09:52:32 -04:00
irq-ti-sci-intr.c irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe 2024-02-02 14:03:58 -06:00
irq-ts4800.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-uniphier-aidet.c
irq-versatile-fpga.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2025-02-27 15:18:09 -05:00
irq-vf610-mscm-ir.c
irq-vic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-vt8500.c
irq-wpcm450-aic.c irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() 2023-04-07 07:31:44 -04:00
irq-xilinx-intc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-xtensa-mx.c
irq-xtensa-pic.c
irq-zevio.c
irqchip.c
qcom-irq-combiner.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
qcom-pdc.c irqchip/qcom-pdc: Drop open coded version of __assign_bit() 2022-07-07 18:04:40 -04:00
spear-shirq.c