summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kvm/arm.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2022-05-03 22:14:24 +0100
committerMarc Zyngier <maz@kernel.org>2022-05-15 12:12:14 +0100
commit5163373af195f10e0d99a8de3465c4ed36bdc337 (patch)
tree3c8d32deb4cbf1adf2fe46ec55e8fce1bac3bcad /arch/arm64/kvm/arm.c
parent85ea6b1ec915c9dd90caf3674b203999d8c7e062 (diff)
downloadlinux-5163373af195f10e0d99a8de3465c4ed36bdc337.tar.bz2
KVM: arm64: vgic-v3: Consistently populate ID_AA64PFR0_EL1.GIC
When adding support for the slightly wonky Apple M1, we had to populate ID_AA64PFR0_EL1.GIC==1 to present something to the guest, as the HW itself doesn't advertise the feature. However, we gated this on the in-kernel irqchip being created. This causes some trouble for QEMU, which snapshots the state of the registers before creating a virtual GIC, and then tries to restore these registers once the GIC has been created. Obviously, between the two stages, ID_AA64PFR0_EL1.GIC has changed value, and the write fails. The fix is to actually emulate the HW, and always populate the field if the HW is capable of it. Fixes: 562e530fd770 ("KVM: arm64: Force ID_AA64PFR0_EL1.GIC=1 when exposing a virtual GICv3") Cc: stable@vger.kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org> Reported-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Oliver Upton <oupton@google.com> Link: https://lore.kernel.org/r/20220503211424.3375263-1-maz@kernel.org
Diffstat (limited to 'arch/arm64/kvm/arm.c')
0 files changed, 0 insertions, 0 deletions