]> git.baikalelectronics.ru Git - kernel.git/commit
arm/arm64: KVM: make the value of ICC_SRE_EL1 a per-VM variable
authorAndre Przywara <andre.przywara@arm.com>
Tue, 3 Jun 2014 06:58:15 +0000 (08:58 +0200)
committerChristoffer Dall <christoffer.dall@linaro.org>
Tue, 20 Jan 2015 17:25:28 +0000 (18:25 +0100)
commitc9d23d7e3a1f49e398cb4dd23d0861cd7dec5e8b
tree6e75ee4272712add84e6d0a1f547caaacc38a7d3
parentada8ae0a6db6c5a71cb4ef14dc1b2ee2ec4de0cb
arm/arm64: KVM: make the value of ICC_SRE_EL1 a per-VM variable

ICC_SRE_EL1 is a system register allowing msr/mrs accesses to the
GIC CPU interface for EL1 (guests). Currently we force it to 0, but
for proper GICv3 support we have to allow guests to use it (depending
on their selected virtual GIC model).
So add ICC_SRE_EL1 to the list of saved/restored registers on a
world switch, but actually disallow a guest to change it by only
restoring a fixed, once-initialized value.
This value depends on the GIC model userland has chosen for a guest.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm64/kernel/asm-offsets.c
arch/arm64/kvm/vgic-v3-switch.S
include/kvm/arm_vgic.h
virt/kvm/arm/vgic-v3.c