diff --git a/xen/arch/x86/include/asm/debugger.h b/xen/arch/x86/include/asm/debugger.h index 9a3132356f..5bac2ee4c2 100644 --- a/xen/arch/x86/include/asm/debugger.h +++ b/xen/arch/x86/include/asm/debugger.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /****************************************************************************** * asm/debugger.h * @@ -22,23 +23,27 @@ #ifndef __X86_DEBUGGER_H__ #define __X86_DEBUGGER_H__ -#include -#include -#include - #ifdef CONFIG_CRASH_DEBUG #include +#include +#include + +/* Returns true if GDB handled the trap, or it is surviveable. */ static inline bool debugger_trap_fatal( unsigned int vector, struct cpu_user_regs *regs) { int rc = __trap_to_gdb(regs, vector); - return ((rc == 0) || (vector == TRAP_int3)); + + if ( rc == 0 ) + return true; + + return vector == X86_EXC_BP; } /* Int3 is a trivial way to gather cpu_user_regs context. */ -#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" ); +#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" ) #else diff --git a/xen/common/domain.c b/xen/common/domain.c index 351029f8b2..8d2c2a9897 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include