mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen: arm: Fix guest mode for 64-bit
Need to check for the 64-bit EL2 modes, not 32-bit HYP mode. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Tim Deegan <tim@xen.org>
This commit is contained in:
1 parent
8292f7f101
commit
75c3b4097c
1 file changed
+7
-1
@@ -13,10 +13,16 @@
|
||||
#define svc_mode(r) psr_mode((r)->cpsr,PSR_MODE_SVC)
|
||||
#define mon_mode(r) psr_mode((r)->cpsr,PSR_MODE_MON)
|
||||
#define abt_mode(r) psr_mode((r)->cpsr,PSR_MODE_ABT)
|
||||
#define hyp_mode(r) psr_mode((r)->cpsr,PSR_MODE_HYP)
|
||||
#define und_mode(r) psr_mode((r)->cpsr,PSR_MODE_UND)
|
||||
#define sys_mode(r) psr_mode((r)->cpsr,PSR_MODE_SYS)
|
||||
|
||||
#ifdef CONFIG_ARM_32
|
||||
#define hyp_mode(r) psr_mode((r)->cpsr,PSR_MODE_HYP)
|
||||
#else
|
||||
#define hyp_mode(r) (psr_mode((r)->cpsr,PSR_MODE_EL2h) || \
|
||||
psr_mode((r)->cpsr,PSR_MODE_EL2t))
|
||||
#endif
|
||||
|
||||
#define guest_mode(r) \
|
||||
({ \
|
||||
unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r); \
|
||||
|
||||