diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2007-11-26 20:42:19 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2007-11-26 20:42:19 +0100 |
commit | 57c351de715458f8fbee1e92e8cc65ddc00da04c (patch) | |
tree | ebf1c2576ab6a15f2018d85a52addec33b87c63c /arch/x86 | |
parent | c1c306344669ca40255e36192b101060ffbb1271 (diff) | |
download | op-kernel-dev-57c351de715458f8fbee1e92e8cc65ddc00da04c.zip op-kernel-dev-57c351de715458f8fbee1e92e8cc65ddc00da04c.tar.gz |
x86: printk kernel version in WARN_ON and other dump_stack users
today, all oopses contain a version number of the kernel, which is nice
because the people who actually do bother to read the oops get this
vital bit of information always without having to ask the reporter in
another round trip.
However, WARN_ON() and many other dump_stack() users right now lack this
information; the patch below adds this. This information is essential
for getting people to use their time effectively when looking at these
things; in addition, it's essential for tools that try to collect
statistics about defects.
Please consider, since its so simple and important for long term kernel
quality processes.
The code is identical between 32/64 bit; a lot of this code should be
unified over time, the patch keeps the identical-ness intact.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/traps_32.c | 5 | ||||
-rw-r--r-- | arch/x86/kernel/traps_64.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c index 298d13e..0a4c893 100644 --- a/arch/x86/kernel/traps_32.c +++ b/arch/x86/kernel/traps_32.c @@ -283,6 +283,11 @@ void dump_stack(void) { unsigned long stack; + printk("Pid: %d, comm: %.20s %s %s %.*s\n", + current->pid, current->comm, print_tainted(), + init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), + init_utsname()->version); show_trace(current, NULL, &stack); } diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c index 4a6bd49..1384e34 100644 --- a/arch/x86/kernel/traps_64.c +++ b/arch/x86/kernel/traps_64.c @@ -31,6 +31,7 @@ #include <linux/uaccess.h> #include <linux/bug.h> #include <linux/kdebug.h> +#include <linux/utsname.h> #if defined(CONFIG_EDAC) #include <linux/edac.h> @@ -400,6 +401,12 @@ void show_stack(struct task_struct *tsk, unsigned long * rsp) void dump_stack(void) { unsigned long dummy; + + printk("Pid: %d, comm: %.20s %s %s %.*s\n", + current->pid, current->comm, print_tainted(), + init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), + init_utsname()->version); show_trace(NULL, NULL, &dummy); } |