diff options
| author | Ingo Molnar <mingo@kernel.org> | 2015-02-24 02:41:07 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2015-02-24 02:41:07 -0500 |
| commit | 2ae79026818e7d49fead82b79b1a543e3b9c8a23 (patch) | |
| tree | c7ee7bd8b37b0880918d361839fd95988fac2dac /kernel/debug/debug_core.c | |
| parent | 1a99367023f6ac664365a37fa508b059e31d0e88 (diff) | |
| parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) | |
Merge tag 'v4.0-rc1' into locking/core, to refresh the tree before merging new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/debug/debug_core.c')
| -rw-r--r-- | kernel/debug/debug_core.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index 07ce18ca71e0..0874e2edd275 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c | |||
| @@ -604,7 +604,7 @@ return_normal: | |||
| 604 | online_cpus) | 604 | online_cpus) |
| 605 | cpu_relax(); | 605 | cpu_relax(); |
| 606 | if (!time_left) | 606 | if (!time_left) |
| 607 | pr_crit("KGDB: Timed out waiting for secondary CPUs.\n"); | 607 | pr_crit("Timed out waiting for secondary CPUs.\n"); |
| 608 | 608 | ||
| 609 | /* | 609 | /* |
| 610 | * At this point the primary processor is completely | 610 | * At this point the primary processor is completely |
| @@ -696,6 +696,14 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs) | |||
| 696 | 696 | ||
| 697 | if (arch_kgdb_ops.enable_nmi) | 697 | if (arch_kgdb_ops.enable_nmi) |
| 698 | arch_kgdb_ops.enable_nmi(0); | 698 | arch_kgdb_ops.enable_nmi(0); |
| 699 | /* | ||
| 700 | * Avoid entering the debugger if we were triggered due to an oops | ||
| 701 | * but panic_timeout indicates the system should automatically | ||
| 702 | * reboot on panic. We don't want to get stuck waiting for input | ||
| 703 | * on such systems, especially if its "just" an oops. | ||
| 704 | */ | ||
| 705 | if (signo != SIGTRAP && panic_timeout) | ||
| 706 | return 1; | ||
| 699 | 707 | ||
| 700 | memset(ks, 0, sizeof(struct kgdb_state)); | 708 | memset(ks, 0, sizeof(struct kgdb_state)); |
| 701 | ks->cpu = raw_smp_processor_id(); | 709 | ks->cpu = raw_smp_processor_id(); |
| @@ -828,6 +836,15 @@ static int kgdb_panic_event(struct notifier_block *self, | |||
| 828 | unsigned long val, | 836 | unsigned long val, |
| 829 | void *data) | 837 | void *data) |
| 830 | { | 838 | { |
| 839 | /* | ||
| 840 | * Avoid entering the debugger if we were triggered due to a panic | ||
| 841 | * We don't want to get stuck waiting for input from user in such case. | ||
| 842 | * panic_timeout indicates the system should automatically | ||
| 843 | * reboot on panic. | ||
| 844 | */ | ||
| 845 | if (panic_timeout) | ||
| 846 | return NOTIFY_DONE; | ||
| 847 | |||
| 831 | if (dbg_kdb_mode) | 848 | if (dbg_kdb_mode) |
| 832 | kdb_printf("PANIC: %s\n", (char *)data); | 849 | kdb_printf("PANIC: %s\n", (char *)data); |
| 833 | kgdb_breakpoint(); | 850 | kgdb_breakpoint(); |
