aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2008-09-16 14:27:30 -0400
committerIngo Molnar <mingo@elte.hu>2008-09-17 05:53:03 -0400
commit90f7d25c6b672137344f447a30a9159945ffea72 (patch)
tree0d935db3030faab95cbeaa714346aa89d55bb6c7 /arch/x86
parentb05f78f5c713eda2c34e495d92495ee4f1c3b5e1 (diff)
x86: print DMI information in the oops trace
in order to diagnose hard system specific issues, it's useful to have the system name in the oops (as provided by DMI) Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/process_32.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 0c3927accb00..7b9ee9f09639 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -37,6 +37,7 @@
37#include <linux/tick.h> 37#include <linux/tick.h>
38#include <linux/percpu.h> 38#include <linux/percpu.h>
39#include <linux/prctl.h> 39#include <linux/prctl.h>
40#include <linux/dmi.h>
40 41
41#include <asm/uaccess.h> 42#include <asm/uaccess.h>
42#include <asm/pgtable.h> 43#include <asm/pgtable.h>
@@ -160,6 +161,7 @@ void __show_registers(struct pt_regs *regs, int all)
160 unsigned long d0, d1, d2, d3, d6, d7; 161 unsigned long d0, d1, d2, d3, d6, d7;
161 unsigned long sp; 162 unsigned long sp;
162 unsigned short ss, gs; 163 unsigned short ss, gs;
164 const char *board;
163 165
164 if (user_mode_vm(regs)) { 166 if (user_mode_vm(regs)) {
165 sp = regs->sp; 167 sp = regs->sp;
@@ -172,11 +174,15 @@ void __show_registers(struct pt_regs *regs, int all)
172 } 174 }
173 175
174 printk("\n"); 176 printk("\n");
175 printk("Pid: %d, comm: %s %s (%s %.*s)\n", 177
178 board = dmi_get_system_info(DMI_PRODUCT_NAME);
179 if (!board)
180 board = "";
181 printk("Pid: %d, comm: %s %s (%s %.*s) %s\n",
176 task_pid_nr(current), current->comm, 182 task_pid_nr(current), current->comm,
177 print_tainted(), init_utsname()->release, 183 print_tainted(), init_utsname()->release,
178 (int)strcspn(init_utsname()->version, " "), 184 (int)strcspn(init_utsname()->version, " "),
179 init_utsname()->version); 185 init_utsname()->version, board);
180 186
181 printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", 187 printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
182 (u16)regs->cs, regs->ip, regs->flags, 188 (u16)regs->cs, regs->ip, regs->flags,