linux_dsm_epyc7002/arch/arm64/kvm/hyp
Marc Zyngier a057001e9e arm64: KVM: vgic-v3: Prevent the guest from messing with ICC_SRE_EL1
Both our GIC emulations are "strict", in the sense that we either
emulate a GICv2 or a GICv3, and not a GICv3 with GICv2 legacy
support.

But when running on a GICv3 host, we still allow the guest to
tinker with the ICC_SRE_EL1 register during its time slice:
it can switch SRE off, observe that it is off, and yet on the
next world switch, find the SRE bit to be set again. Not very
nice.

An obvious solution is to always trap accesses to ICC_SRE_EL1
(by clearing ICC_SRE_EL2.Enable), and to let the handler return
the programmed value on a read, or ignore the write.

That way, the guest can always observe that our GICv3 is SRE==1
only.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2016-05-31 16:12:17 +02:00
..
debug-sr.c arm64 updates for 4.6: 2016-03-17 20:03:47 -07:00
entry.S arm64: kvm: Fix kvm teardown for systems using the extended idmap 2016-05-03 09:50:27 +01:00
fpsimd.S arm64: KVM: Implement fpsimd save/restore 2015-12-14 11:30:41 +00:00
hyp-entry.S arm64: hyp/kvm: Make hyp-stub extensible 2016-04-28 12:05:46 +01:00
Makefile kvm: arm64: Disable compiler instrumentation for hypervisor code 2016-03-21 14:02:17 +01:00
s2-setup.c kvm: arm64: Enable hardware updates of the Access Flag for Stage 2 page tables 2016-05-09 22:23:08 +02:00
switch.c arm64: KVM: Add access handler for PMUSERENR register 2016-02-29 18:34:21 +00:00
sysreg-sr.c arm64: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h 2016-02-29 18:34:18 +00:00
tlb.c arm64: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h 2016-02-29 18:34:18 +00:00
vgic-v3-sr.c arm64: KVM: vgic-v3: Prevent the guest from messing with ICC_SRE_EL1 2016-05-31 16:12:17 +02:00