kgdb: gdb "monitor" -> kdb passthrough
[safe/jmp/linux-2.6] / kernel / debug / kdb / kdb_io.c
index 9e3cec7..8339b29 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/smp.h>
 #include <linux/nmi.h>
 #include <linux/delay.h>
+#include <linux/kgdb.h>
 #include <linux/kdb.h>
 #include <linux/kallsyms.h>
 #include "kdb_private.h"
@@ -669,10 +670,14 @@ kdb_printit:
         * Write to all consoles.
         */
        retlen = strlen(kdb_buffer);
-       while (c) {
-               c->write(c, kdb_buffer, retlen);
-               touch_nmi_watchdog();
-               c = c->next;
+       if (!dbg_kdb_mode && kgdb_connected) {
+               gdbstub_msg_write(kdb_buffer, retlen);
+       } else {
+               while (c) {
+                       c->write(c, kdb_buffer, retlen);
+                       touch_nmi_watchdog();
+                       c = c->next;
+               }
        }
        if (logging) {
                saved_loglevel = console_loglevel;