diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2012-03-16 23:20:41 +0400 |
---|---|---|
committer | Jason Wessel <jason.wessel@windriver.com> | 2012-03-23 00:07:15 +0400 |
commit | 2366e047840e33928803c0442176fb3991423da8 (patch) | |
tree | 6c1488ee97a24c85dd4f2ddb1a06a5694de6e2f2 /kernel/debug/gdbstub.c | |
parent | 9fbe465efc76044dd87afe764db5464ae61aeabc (diff) | |
download | linux-2366e047840e33928803c0442176fb3991423da8.tar.xz |
kgdb,debug-core,gdbstub: Hook the reboot notifier for debugger detach
The gdbstub and kdb should get detached if the system is rebooting.
Calling gdbstub_exit() will set the proper debug core state and send a
message to any debugger that is connected to correctly detach.
An attached debugger will receive the exit code from
include/linux/reboot.h based on SYS_HALT, SYS_REBOOT, etc...
Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Diffstat (limited to 'kernel/debug/gdbstub.c')
-rw-r--r-- | kernel/debug/gdbstub.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c index 5a155742ae96..ce615e064482 100644 --- a/kernel/debug/gdbstub.c +++ b/kernel/debug/gdbstub.c @@ -1111,6 +1111,13 @@ void gdbstub_exit(int status) unsigned char checksum, ch, buffer[3]; int loop; + if (!kgdb_connected) + return; + kgdb_connected = 0; + + if (!dbg_io_ops || dbg_kdb_mode) + return; + buffer[0] = 'W'; buffer[1] = hex_asc_hi(status); buffer[2] = hex_asc_lo(status); |