]> xenbits.xensource.com Git - people/liuw/xen.git/commitdiff
xen/arm: Only set necessary flags when initializing HCR_EL2
authorJulien Grall <julien.grall@arm.com>
Mon, 28 Jan 2019 11:50:20 +0000 (11:50 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 29 Jan 2019 00:53:14 +0000 (16:53 -0800)
Only {A,F,I}MO are necessary to receive interrupts until a guest vCPU is
loaded.

The rest have no effect on Xen and it is better to avoid setting them.

Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Andrii Anisov <andrii_anisov@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/traps.c

index 221c762adad60cfdef6a5c37123a6ac59a13ec55..64a78d83a5d25918f4c198820711da5ac12479b8 100644 (file)
@@ -157,8 +157,12 @@ void init_traps(void)
     WRITE_SYSREG((HCPTR_CP_MASK & ~(HCPTR_CP(10) | HCPTR_CP(11))) | HCPTR_TTA,
                  CPTR_EL2);
 
-    /* Setup hypervisor traps */
-    WRITE_SYSREG(get_default_hcr_flags(), HCR_EL2);
+    /*
+     * Configure HCR_EL2 with the bare minimum to run Xen until a guest
+     * is scheduled. {A,I,F}MO bits are set to allow EL2 receiving
+     * interrupts.
+     */
+    WRITE_SYSREG(HCR_AMO | HCR_FMO | HCR_IMO, HCR_EL2);
     isb();
 }