]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
xen/arm32: traps: Dump more information for hypervisor data abort
authorJulien Grall <jgrall@amazon.com>
Fri, 12 Aug 2022 19:24:48 +0000 (20:24 +0100)
committerJulien Grall <julien@xen.org>
Wed, 31 Aug 2022 19:16:22 +0000 (20:16 +0100)
Unlike arm64, on arm32 there are no extra information dumped (e.g.
page table walk) for hypervisor data abort.

For data abort, the HSR will be set properly and so call
do_trap_hyp_sync() instead of do_unexpected_trap() on arm32 to have
the print the same information as arm64.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
xen/arch/arm/arm32/traps.c
xen/arch/arm/include/asm/traps.h

index a4ce2b92d904a7fa5cdcd5923124e678b68e1402..a2fc1c22cbc98bae4c13352e12eca042ce5c855f 100644 (file)
@@ -81,7 +81,7 @@ void do_trap_data_abort(struct cpu_user_regs *regs)
     if ( VABORT_GEN_BY_GUEST(regs) )
         do_trap_guest_serror(regs);
     else
-        do_unexpected_trap("Data Abort", regs);
+        do_trap_hyp_sync(regs);
 }
 
 void finalize_instr_emulation(const struct instr_details *instr)
index 08bc0b484c7575149d47d6c32bdbe9efd93c26f0..883dae368eacbefd2cc9a2ea2164405ff8ee4c29 100644 (file)
@@ -73,6 +73,7 @@ int do_bug_frame(const struct cpu_user_regs *regs, vaddr_t pc);
 
 void noreturn do_unexpected_trap(const char *msg,
                                  const struct cpu_user_regs *regs);
+void do_trap_hyp_sync(struct cpu_user_regs *regs);
 
 /* Functions for pending virtual abort checking window. */
 void abort_guest_exit_start(void);