diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 76a9586aa2..5adf1253d6 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -697,7 +697,17 @@ static void _show_registers(struct cpu_user_regs *regs, show_registers_32(regs, ctxt, guest_mode, v); #ifdef CONFIG_ARM_64 else if ( is_64bit_domain(v->domain) ) - show_registers_64(regs, ctxt, guest_mode, v); + { + if ( psr_mode_is_32bit(regs->cpsr) ) + { + BUG_ON(!usr_mode(regs)); + show_registers_32(regs, ctxt, guest_mode, v); + } + else + { + show_registers_64(regs, ctxt, guest_mode, v); + } + } #endif } else