]> xenbits.xensource.com Git - xen.git/commit
xen/arm: gic-v3: Make sure ICC_SRE_EL1 is restored before ICH_VMCR_EL2
authorJulien Grall <julien.grall@linaro.org>
Thu, 19 Oct 2017 17:09:05 +0000 (18:09 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Thu, 19 Oct 2017 21:12:10 +0000 (14:12 -0700)
commit6ccf25d46c18ff274e68dde8c8da3c656f7699e2
treea3e00537b18cd7a8638fbf2d23894095fc4040cc
parent0c8055c2f45f489aff67f4d362f3fdc192cc2d94
xen/arm: gic-v3: Make sure ICC_SRE_EL1 is restored before ICH_VMCR_EL2

Per 8.4.8 in ARM IHI 0069D, ICH_VMCR_EL2.VFIQEn is RES1 when
ICC_SRE_EL1.SRE is 1. This causes a Group 0 interrupt (as generated in
GICv2 mode) to be delivered as a FIQ to the guest, with potentially
consequence. So we must make sure that ICC_SRE_EL1 has been actually
programmed before at ICH_VMCR_EL2.

This was discovered when booting EFI in a GICv2 guest on a GICv3
hardware.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/gic-v3.c