To ARM64, "if ( hsr.ec >= 0x10 ) return 1;" is ok for unconditional
check, but to ARM32, we need to use 'hsr.ec >> 30' to check.

Signed-off-by: Peng Fan <peng....@freescale.com>
Cc: Ian Campbell <ian.campb...@citrix.com>
Cc: Stefano Stabellini <stefano.stabell...@citrix.com>
Cc: Julien Grall <julien.gr...@citrix.com>
---
 xen/arch/arm/traps.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 9d2bd6a..2e2b1f2 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1531,8 +1531,13 @@ static int check_conditional_instr(struct cpu_user_regs 
*regs,
     int cond;
 
     /* Unconditional Exception classes */
+#ifdef CONFIG_ARM_64
     if ( hsr.ec >= 0x10 )
         return 1;
+#else
+    if ( hsr.ec >> 30 )
+        return 1;
+#endif
 
     /* Check for valid condition in hsr */
     cond = hsr.cond.ccvalid ? hsr.cond.cc : -1;
-- 
1.8.4



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to