diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-06-06 11:12:55 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-06-06 11:12:55 +0200 |
commit | c7f5f4ab10ce4e05b9f8877f1fd112faba71f175 (patch) | |
tree | f4e09bf621f0201283167f17f2b33461042cc1a7 | |
parent | eea5b5510fc5545d15b69da8e485a7424ae388cf (diff) | |
parent | 62be73eafaa045d3233337303fb140f7f8a61135 (diff) |
Merge branch 'core/debug' into core/urgent
Merge two debugging patchlets that were waiting for
preparatory commits to hit upstream.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | kernel/panic.c | 6 | ||||
-rw-r--r-- | lib/Kconfig.debug | 20 |
2 files changed, 23 insertions, 3 deletions
diff --git a/kernel/panic.c b/kernel/panic.c index 8ed89a175d7..d2a5f4ecc6d 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -27,7 +27,7 @@ #define PANIC_TIMER_STEP 100 #define PANIC_BLINK_SPD 18 -int panic_on_oops; +int panic_on_oops = CONFIG_PANIC_ON_OOPS_VALUE; static unsigned long tainted_mask; static int pause_on_oops; static int pause_on_oops_flag; @@ -108,8 +108,6 @@ void panic(const char *fmt, ...) */ crash_kexec(NULL); - kmsg_dump(KMSG_DUMP_PANIC); - /* * Note smp_send_stop is the usual smp shutdown function, which * unfortunately means it may not be hardened to work in a panic @@ -117,6 +115,8 @@ void panic(const char *fmt, ...) */ smp_send_stop(); + kmsg_dump(KMSG_DUMP_PANIC); + atomic_notifier_call_chain(&panic_notifier_list, 0, buf); bust_spinlocks(0); diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a42d3ae3964..ff5bdee4716 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -241,6 +241,26 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC default 1 if BOOTPARAM_SOFTLOCKUP_PANIC +config PANIC_ON_OOPS + bool "Panic on Oops" if EXPERT + default n + help + Say Y here to enable the kernel to panic when it oopses. This + has the same effect as setting oops=panic on the kernel command + line. + + This feature is useful to ensure that the kernel does not do + anything erroneous after an oops which could result in data + corruption or other issues. + + Say N if unsure. + +config PANIC_ON_OOPS_VALUE + int + range 0 1 + default 0 if !PANIC_ON_OOPS + default 1 if PANIC_ON_OOPS + config DETECT_HUNG_TASK bool "Detect Hung Tasks" depends on DEBUG_KERNEL |