diff options
Diffstat (limited to 'kernel/debug/gdbstub.c')
-rw-r--r-- | kernel/debug/gdbstub.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c index c22d8c28ad84..ce615e064482 100644 --- a/kernel/debug/gdbstub.c +++ b/kernel/debug/gdbstub.c | |||
@@ -1111,6 +1111,13 @@ void gdbstub_exit(int status) | |||
1111 | unsigned char checksum, ch, buffer[3]; | 1111 | unsigned char checksum, ch, buffer[3]; |
1112 | int loop; | 1112 | int loop; |
1113 | 1113 | ||
1114 | if (!kgdb_connected) | ||
1115 | return; | ||
1116 | kgdb_connected = 0; | ||
1117 | |||
1118 | if (!dbg_io_ops || dbg_kdb_mode) | ||
1119 | return; | ||
1120 | |||
1114 | buffer[0] = 'W'; | 1121 | buffer[0] = 'W'; |
1115 | buffer[1] = hex_asc_hi(status); | 1122 | buffer[1] = hex_asc_hi(status); |
1116 | buffer[2] = hex_asc_lo(status); | 1123 | buffer[2] = hex_asc_lo(status); |
@@ -1129,5 +1136,6 @@ void gdbstub_exit(int status) | |||
1129 | dbg_io_ops->write_char(hex_asc_lo(checksum)); | 1136 | dbg_io_ops->write_char(hex_asc_lo(checksum)); |
1130 | 1137 | ||
1131 | /* make sure the output is flushed, lest the bootloader clobber it */ | 1138 | /* make sure the output is flushed, lest the bootloader clobber it */ |
1132 | dbg_io_ops->flush(); | 1139 | if (dbg_io_ops->flush) |
1140 | dbg_io_ops->flush(); | ||
1133 | } | 1141 | } |