diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-10-04 09:10:17 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-10-04 09:10:17 +0100 |
commit | fc7c643b21cceb90954ee492354b422b700bf569 (patch) | |
tree | 355f4e99a77876e6b2a9a629a44e060af6fa4844 | |
parent | 86f22394f516507f855cb177458c5be264029def (diff) | |
download | xen-fc7c643b21cceb90954ee492354b422b700bf569.tar.gz xen-fc7c643b21cceb90954ee492354b422b700bf569.tar.bz2 xen-fc7c643b21cceb90954ee492354b422b700bf569.zip |
[XEN] Never crash machine on int3 traps.
Do not enter debugger on dom0 shutdown unless dom0 crashed.
Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r-- | xen/common/shutdown.c | 3 | ||||
-rw-r--r-- | xen/include/asm-x86/debugger.h | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c index 1baea16205..a994e14bfc 100644 --- a/xen/common/shutdown.c +++ b/xen/common/shutdown.c @@ -30,8 +30,6 @@ static void maybe_reboot(void) void dom0_shutdown(u8 reason) { - debugger_trap_immediate(); - switch ( reason ) { case SHUTDOWN_poweroff: @@ -43,6 +41,7 @@ void dom0_shutdown(u8 reason) case SHUTDOWN_crash: { + debugger_trap_immediate(); printk("Domain 0 crashed: "); maybe_reboot(); break; /* not reached */ diff --git a/xen/include/asm-x86/debugger.h b/xen/include/asm-x86/debugger.h index 743dc2d8e5..b5256523e9 100644 --- a/xen/include/asm-x86/debugger.h +++ b/xen/include/asm-x86/debugger.h @@ -46,7 +46,8 @@ static inline int debugger_trap_fatal( unsigned int vector, struct cpu_user_regs *regs) { - return (__trap_to_gdb(regs, vector) == 0); + int rc = __trap_to_gdb(regs, vector); + return ((rc == 0) || (vector == TRAP_int3)); } /* Int3 is a trivial way to gather cpu_user_regs context. */ |