aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2006-12-21 15:02:00 -0500
committerKyle McMartin <kyle@athena.road.mcmartin.ca>2007-02-17 00:56:52 -0500
commitbd83bcffb2a582ddac0b463153a4c1fda4335273 (patch)
tree9009ac7eb38365c9b7b8717ede8e3942ffca2b8c
parentca72a223278483e62530ca9e5b4f9b39318868ea (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>
-rw-r--r--arch/parisc/kernel/traps.c22
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" 235KERN_CRIT " _______________________________ \n"
236" < Your System ate a SPARC! Gah! >\n" 236KERN_CRIT " < Your System ate a SPARC! Gah! >\n"
237" ------------------------------- \n" 237KERN_CRIT " ------------------------------- \n"
238" \\ ^__^\n" 238KERN_CRIT " \\ ^__^\n"
239" \\ (xx)\\_______\n" 239KERN_CRIT " \\ (xx)\\_______\n"
240" (__)\\ )\\/\\\n" 240KERN_CRIT " (__)\\ )\\/\\\n"
241" U ||----w |\n" 241KERN_CRIT " U ||----w |\n"
242" || ||\n"); 242KERN_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())