diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-03 13:53:47 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-03 13:53:47 -0400 |
| commit | d97e1dcde5e19ed1f828baff4ab5fd0e517c8dae (patch) | |
| tree | b383820ad8075479d31168cc35aabbb3bed35736 /kernel | |
| parent | 587a9e1f95794c05419d3bdb4c409a3274849f93 (diff) | |
| parent | f96a4216e85050c0a9d41a41ecb0ae9d8e39b509 (diff) | |
Merge tag 'for_linux-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb
Pull KGDB/KDB/usb-dbgp fixes and cleanups from Jason Wessel:
"There are no new features, those will be delayed to the 3.7 window.
There are only fixes/cleanup against the usual kernel churn and we are
removing more lines than we add:
- usb-dbgp - increase the controller wait time to come out of halt.
- kdb - Remove unused KDB_FLAG_ONLY_DO_DUMP code and cpu in more prompt
- debug core - pass NMI type on archs that provide NMI types"
* tag 'for_linux-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
USB: echi-dbgp: increase the controller wait time to come out of halt.
kernel/debug: Make use of KGDB_REASON_NMI
kdb: Remove cpu from the more prompt
kdb: Remove unused KDB_FLAG_ONLY_DO_DUMP
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/debug/kdb/kdb_debugger.c | 4 | ||||
| -rw-r--r-- | kernel/debug/kdb/kdb_io.c | 11 | ||||
| -rw-r--r-- | kernel/debug/kdb/kdb_main.c | 15 |
3 files changed, 5 insertions, 25 deletions
diff --git a/kernel/debug/kdb/kdb_debugger.c b/kernel/debug/kdb/kdb_debugger.c index 8b68ce78ff17..be7b33b73d30 100644 --- a/kernel/debug/kdb/kdb_debugger.c +++ b/kernel/debug/kdb/kdb_debugger.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/kdb.h> | 12 | #include <linux/kdb.h> |
| 13 | #include <linux/kdebug.h> | 13 | #include <linux/kdebug.h> |
| 14 | #include <linux/export.h> | 14 | #include <linux/export.h> |
| 15 | #include <linux/hardirq.h> | ||
| 15 | #include "kdb_private.h" | 16 | #include "kdb_private.h" |
| 16 | #include "../debug_core.h" | 17 | #include "../debug_core.h" |
| 17 | 18 | ||
| @@ -52,6 +53,9 @@ int kdb_stub(struct kgdb_state *ks) | |||
| 52 | if (atomic_read(&kgdb_setting_breakpoint)) | 53 | if (atomic_read(&kgdb_setting_breakpoint)) |
| 53 | reason = KDB_REASON_KEYBOARD; | 54 | reason = KDB_REASON_KEYBOARD; |
| 54 | 55 | ||
| 56 | if (in_nmi()) | ||
| 57 | reason = KDB_REASON_NMI; | ||
| 58 | |||
| 55 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) { | 59 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) { |
| 56 | if ((bp->bp_enabled) && (bp->bp_addr == addr)) { | 60 | if ((bp->bp_enabled) && (bp->bp_addr == addr)) { |
| 57 | reason = KDB_REASON_BREAK; | 61 | reason = KDB_REASON_BREAK; |
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c index bb9520f0f6ff..0a69d2adc4f3 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c | |||
| @@ -715,9 +715,6 @@ kdb_printit: | |||
| 715 | /* check for having reached the LINES number of printed lines */ | 715 | /* check for having reached the LINES number of printed lines */ |
| 716 | if (kdb_nextline == linecount) { | 716 | if (kdb_nextline == linecount) { |
| 717 | char buf1[16] = ""; | 717 | char buf1[16] = ""; |
| 718 | #if defined(CONFIG_SMP) | ||
| 719 | char buf2[32]; | ||
| 720 | #endif | ||
| 721 | 718 | ||
| 722 | /* Watch out for recursion here. Any routine that calls | 719 | /* Watch out for recursion here. Any routine that calls |
| 723 | * kdb_printf will come back through here. And kdb_read | 720 | * kdb_printf will come back through here. And kdb_read |
| @@ -732,14 +729,6 @@ kdb_printit: | |||
| 732 | if (moreprompt == NULL) | 729 | if (moreprompt == NULL) |
| 733 | moreprompt = "more> "; | 730 | moreprompt = "more> "; |
| 734 | 731 | ||
| 735 | #if defined(CONFIG_SMP) | ||
| 736 | if (strchr(moreprompt, '%')) { | ||
| 737 | sprintf(buf2, moreprompt, get_cpu()); | ||
| 738 | put_cpu(); | ||
| 739 | moreprompt = buf2; | ||
| 740 | } | ||
| 741 | #endif | ||
| 742 | |||
| 743 | kdb_input_flush(); | 732 | kdb_input_flush(); |
| 744 | c = console_drivers; | 733 | c = console_drivers; |
| 745 | 734 | ||
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 1f91413edb87..31df1706b9a9 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c | |||
| @@ -139,11 +139,10 @@ static const int __nkdb_err = sizeof(kdbmsgs) / sizeof(kdbmsg_t); | |||
| 139 | static char *__env[] = { | 139 | static char *__env[] = { |
| 140 | #if defined(CONFIG_SMP) | 140 | #if defined(CONFIG_SMP) |
| 141 | "PROMPT=[%d]kdb> ", | 141 | "PROMPT=[%d]kdb> ", |
| 142 | "MOREPROMPT=[%d]more> ", | ||
| 143 | #else | 142 | #else |
| 144 | "PROMPT=kdb> ", | 143 | "PROMPT=kdb> ", |
| 145 | "MOREPROMPT=more> ", | ||
| 146 | #endif | 144 | #endif |
| 145 | "MOREPROMPT=more> ", | ||
| 147 | "RADIX=16", | 146 | "RADIX=16", |
| 148 | "MDCOUNT=8", /* lines of md output */ | 147 | "MDCOUNT=8", /* lines of md output */ |
| 149 | KDB_PLATFORM_ENV, | 148 | KDB_PLATFORM_ENV, |
| @@ -1236,18 +1235,6 @@ static int kdb_local(kdb_reason_t reason, int error, struct pt_regs *regs, | |||
| 1236 | *cmdbuf = '\0'; | 1235 | *cmdbuf = '\0'; |
| 1237 | *(cmd_hist[cmd_head]) = '\0'; | 1236 | *(cmd_hist[cmd_head]) = '\0'; |
| 1238 | 1237 | ||
| 1239 | if (KDB_FLAG(ONLY_DO_DUMP)) { | ||
| 1240 | /* kdb is off but a catastrophic error requires a dump. | ||
| 1241 | * Take the dump and reboot. | ||
| 1242 | * Turn on logging so the kdb output appears in the log | ||
| 1243 | * buffer in the dump. | ||
| 1244 | */ | ||
| 1245 | const char *setargs[] = { "set", "LOGGING", "1" }; | ||
| 1246 | kdb_set(2, setargs); | ||
| 1247 | kdb_reboot(0, NULL); | ||
| 1248 | /*NOTREACHED*/ | ||
| 1249 | } | ||
| 1250 | |||
| 1251 | do_full_getstr: | 1238 | do_full_getstr: |
| 1252 | #if defined(CONFIG_SMP) | 1239 | #if defined(CONFIG_SMP) |
| 1253 | snprintf(kdb_prompt_str, CMD_BUFLEN, kdbgetenv("PROMPT"), | 1240 | snprintf(kdb_prompt_str, CMD_BUFLEN, kdbgetenv("PROMPT"), |
