OSDN Git Service

irqchip/gic-v4.1: Disable vSGI upon (GIC CPUIF < v4.1) detection
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Wed, 17 Mar 2021 10:07:19 +0000 (10:07 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 22 Apr 2021 14:55:21 +0000 (15:55 +0100)
commit46135d6f878ab00261d4a2082d620bfb41019aab
tree8eaa3ebe27414bcf3116aab3143b415ae0d2b6c8
parenta6992bbe9774e044d3d0f973593d655c53efe089
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
arch/arm64/kvm/vgic/vgic-mmio-v3.c
drivers/irqchip/irq-gic-v4.c
include/linux/irqchip/arm-gic-v4.h