aboutsummaryrefslogtreecommitdiffstats
path: root/include/kvm/arm_vgic.h
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2014-06-03 02:58:15 -0400
committerChristoffer Dall <christoffer.dall@linaro.org>2015-01-20 12:25:28 -0500
commit2f5fa41a7a7f47f3109a6596b0ec96258dbf06e6 (patch)
tree6e75ee4272712add84e6d0a1f547caaacc38a7d3 /include/kvm/arm_vgic.h
parent3caa2d8c3b2d80f5e342fe8cec07c03c8147dcab (diff)
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>
Diffstat (limited to 'include/kvm/arm_vgic.h')
-rw-r--r--include/kvm/arm_vgic.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index 1c0e9dbabe6d..ff04afd0d901 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -245,6 +245,7 @@ struct vgic_v3_cpu_if {
245#ifdef CONFIG_ARM_GIC_V3 245#ifdef CONFIG_ARM_GIC_V3
246 u32 vgic_hcr; 246 u32 vgic_hcr;
247 u32 vgic_vmcr; 247 u32 vgic_vmcr;
248 u32 vgic_sre; /* Restored only, change ignored */
248 u32 vgic_misr; /* Saved only */ 249 u32 vgic_misr; /* Saved only */
249 u32 vgic_eisr; /* Saved only */ 250 u32 vgic_eisr; /* Saved only */
250 u32 vgic_elrsr; /* Saved only */ 251 u32 vgic_elrsr; /* Saved only */