diff options
author | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2021-03-17 13:07:19 +0300 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2021-04-22 17:55:21 +0300 |
commit | 46135d6f878ab00261d4a2082d620bfb41019aab (patch) | |
tree | 8eaa3ebe27414bcf3116aab3143b415ae0d2b6c8 /include | |
parent | a6992bbe9774e044d3d0f973593d655c53efe089 (diff) | |
download | linux-46135d6f878ab00261d4a2082d620bfb41019aab.tar.xz |
irqchip/gic-v4.1: Disable vSGI upon (GIC CPUIF < v4.1) detection
GIC CPU interfaces versions predating GIC v4.1 were not built to
accommodate vINTID within the vSGI range; as reported in the GIC
specifications (8.2 "Changes to the CPU interface"), it is
CONSTRAINED UNPREDICTABLE to deliver a vSGI to a PE with
ID_AA64PFR0_EL1.GIC < b0011.
Check the GIC CPUIF version by reading the SYS_ID_AA64_PFR0_EL1.
Disable vSGIs if a CPUIF version < 4.1 is detected to prevent using
vSGIs on systems where they may misbehave.
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210317100719.3331-2-lorenzo.pieralisi@arm.com
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/irqchip/arm-gic-v4.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/irqchip/arm-gic-v4.h b/include/linux/irqchip/arm-gic-v4.h index 943c3411ca10..2c63375bbd43 100644 --- a/include/linux/irqchip/arm-gic-v4.h +++ b/include/linux/irqchip/arm-gic-v4.h @@ -145,4 +145,6 @@ int its_init_v4(struct irq_domain *domain, const struct irq_domain_ops *vpe_ops, const struct irq_domain_ops *sgi_ops); +bool gic_cpuif_has_vsgi(void); + #endif |