diff options
author | Helge Deller <deller@gmx.de> | 2006-12-21 15:02:00 -0500 |
---|---|---|
committer | Kyle McMartin <kyle@athena.road.mcmartin.ca> | 2007-02-17 00:56:52 -0500 |
commit | bd83bcffb2a582ddac0b463153a4c1fda4335273 (patch) | |
tree | 9009ac7eb38365c9b7b8717ede8e3942ffca2b8c /arch/parisc/kernel/traps.c | |
parent | ca72a223278483e62530ca9e5b4f9b39318868ea (diff) |
[PARISC] dump stack backtrace on BUG() and add syslog-levels to printk()s
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'arch/parisc/kernel/traps.c')
-rw-r--r-- | arch/parisc/kernel/traps.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index ea0eff91db4e..286d26e288f8 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
@@ -163,13 +163,13 @@ static void do_show_stack(struct unwind_frame_info *info) | |||
163 | { | 163 | { |
164 | int i = 1; | 164 | int i = 1; |
165 | 165 | ||
166 | printk("Backtrace:\n"); | 166 | printk(KERN_CRIT "Backtrace:\n"); |
167 | while (i <= 16) { | 167 | while (i <= 16) { |
168 | if (unwind_once(info) < 0 || info->ip == 0) | 168 | if (unwind_once(info) < 0 || info->ip == 0) |
169 | break; | 169 | break; |
170 | 170 | ||
171 | if (__kernel_text_address(info->ip)) { | 171 | if (__kernel_text_address(info->ip)) { |
172 | printk(" [<" RFMT ">] ", info->ip); | 172 | printk("%s [<" RFMT ">] ", (i&0x3)==1 ? KERN_CRIT : "", info->ip); |
173 | #ifdef CONFIG_KALLSYMS | 173 | #ifdef CONFIG_KALLSYMS |
174 | print_symbol("%s\n", info->ip); | 174 | print_symbol("%s\n", info->ip); |
175 | #else | 175 | #else |
@@ -232,14 +232,14 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err) | |||
232 | 232 | ||
233 | /* Amuse the user in a SPARC fashion */ | 233 | /* Amuse the user in a SPARC fashion */ |
234 | if (err) printk( | 234 | if (err) printk( |
235 | " _______________________________ \n" | 235 | KERN_CRIT " _______________________________ \n" |
236 | " < Your System ate a SPARC! Gah! >\n" | 236 | KERN_CRIT " < Your System ate a SPARC! Gah! >\n" |
237 | " ------------------------------- \n" | 237 | KERN_CRIT " ------------------------------- \n" |
238 | " \\ ^__^\n" | 238 | KERN_CRIT " \\ ^__^\n" |
239 | " \\ (xx)\\_______\n" | 239 | KERN_CRIT " \\ (xx)\\_______\n" |
240 | " (__)\\ )\\/\\\n" | 240 | KERN_CRIT " (__)\\ )\\/\\\n" |
241 | " U ||----w |\n" | 241 | KERN_CRIT " U ||----w |\n" |
242 | " || ||\n"); | 242 | KERN_CRIT " || ||\n"); |
243 | 243 | ||
244 | /* unlock the pdc lock if necessary */ | 244 | /* unlock the pdc lock if necessary */ |
245 | pdc_emergency_unlock(); | 245 | pdc_emergency_unlock(); |
@@ -254,6 +254,8 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err) | |||
254 | if (err) | 254 | if (err) |
255 | printk(KERN_CRIT "%s (pid %d): %s (code %ld)\n", | 255 | printk(KERN_CRIT "%s (pid %d): %s (code %ld)\n", |
256 | current->comm, current->pid, str, err); | 256 | current->comm, current->pid, str, err); |
257 | |||
258 | dump_stack(); | ||
257 | show_regs(regs); | 259 | show_regs(regs); |
258 | 260 | ||
259 | if (in_interrupt()) | 261 | if (in_interrupt()) |