@@ -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 <xen/sched.h>
-#include <asm/regs.h>
-#include <asm/processor.h>
-
#ifdef CONFIG_CRASH_DEBUG
#include <xen/gdbstub.h>
+#include <xen/stdbool.h>
+
+#include <asm/x86-defns.h>
+/* 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
@@ -33,7 +33,6 @@
#include <xen/xenoprof.h>
#include <xen/irq.h>
#include <xen/argo.h>
-#include <asm/debugger.h>
#include <asm/p2m.h>
#include <asm/processor.h>
#include <public/sched.h>
* Remove inappropriate semicolon from debugger_trap_immediate() * Try to explain what debugger_trap_fatal() is doing, and write it in a more legible way. * Drop unecessary includes. This includes common/domain.c which doesn't use any debugger functionality, even prior to this cleaup. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Jan Beulich <JBeulich@suse.com> CC: Roger Pau Monné <roger.pau@citrix.com> CC: Wei Liu <wl@xen.org> v5: * New --- xen/arch/x86/include/asm/debugger.h | 17 +++++++++++------ xen/common/domain.c | 1 - 2 files changed, 11 insertions(+), 7 deletions(-)