From: Ian Campbell Date: Mon, 29 Jul 2013 12:20:58 +0000 (+0100) Subject: xen: arm: Set EL1 register width in HCR_EL2 during context switch. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6590 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d47bbc7e0ce1919e01a111543d355dd2f5e33a58;p=xen.git xen: arm: Set EL1 register width in HCR_EL2 during context switch. Signed-off-by: Ian Campbell Acked-by: Stefano Stabellini --- diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index bf204d3bb7..b4d99f190c 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -207,6 +207,11 @@ static void ctxt_switch_to(struct vcpu *n) isb(); + if ( is_pv32_domain(n->domain) ) + hcr &= ~HCR_RW; + else + hcr |= HCR_RW; + WRITE_SYSREG(hcr, HCR_EL2); isb(); diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h index 2c20821001..59215b82c2 100644 --- a/xen/include/asm-arm/processor.h +++ b/xen/include/asm-arm/processor.h @@ -49,6 +49,7 @@ #define PSR_GUEST_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK) /* HCR Hyp Configuration Register */ +#define HCR_RW (1<<31) /* ARM64 only */ #define HCR_TGE (1<<27) #define HCR_TVM (1<<26) #define HCR_TTLB (1<<25)