summaryrefslogtreecommitdiff
path: root/scripts/basic/split-include.c
diff options
context:
space:
mode:
authorFuad Tabba <fuad.tabba@linux.dev>2026-10-12 17:15:23 +0100
committerMarc Zyngier <maz@kernel.org>2026-10-26 07:44:46 +0000
commitcd38c10e191eb2c37b9904a6ffc3b6bf4d9c0c48 (patch)
treecbcd430e82d9bf9a5e8d72ac4bd884941bf3a47d /scripts/basic/split-include.c
parentfb77bb2a0ff253e6c370ec7dc1afa45b2ecd8d2e (diff)
downloadlinux-cd38c10e191eb2c37b9904a6ffc3b6bf4d9c0c48.tar.gz
linux-cd38c10e191eb2c37b9904a6ffc3b6bf4d9c0c48.zip
KVM: arm64: vgic: Do not access the GICv5 CPU interface from EL1
can_access_vgic_from_kernel() requires VHE only for the GICv3 system register interface, so on a native GICv5 system without FEAT_GCIE_LEGACY it returns true under nVHE. The kernel then saves and restores the CPU interface from EL1, where ICH_VMCR_EL2 and the ICH_PPI_* registers are UNDEFINED, and running a vCPU oopses the host. The nVHE world switch already does that work at EL2. Anything that requires EL2 system registers or instructions is out of reach of a kernel running at EL1, which leaves GICv2, the one memory-mapped CPU interface. Allow GICv2 from EL1 and require VHE for everything else. Fixes: 9b8e3d4ca0e73 ("KVM: arm64: gic-v5: Implement GICv5 load/put and save/restore") Suggested-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com> Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev> Link: https://patch.msgid.link/20261012161524.4016464-5-fuad.tabba@linux.dev Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions