]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/m68knommu/kernel/traps.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6-omap-h63xx.git] / arch / m68knommu / kernel / traps.c
index 17649d2543efa211423c5228d872ceaeb985fa5e..437a061d8b94a74745f0e7d55cc96c14d9276e08 100644 (file)
@@ -62,8 +62,6 @@ static char const * const vec_names[] = {
 
 void __init trap_init(void)
 {
-       if (mach_trap_init)
-               mach_trap_init();
 }
 
 void die_if_kernel(char *str, struct pt_regs *fp, int nr)
@@ -82,7 +80,8 @@ void die_if_kernel(char *str, struct pt_regs *fp, int nr)
 
        printk(KERN_EMERG "Process %s (pid: %d, stackpage=%08lx)\n",
                current->comm, current->pid, PAGE_SIZE+(unsigned long)current);
-       show_stack(NULL, (unsigned long *)fp);
+       show_stack(NULL, (unsigned long *)(fp + 1));
+       add_taint(TAINT_DIE);
        do_exit(SIGSEGV);
 }
 
@@ -127,11 +126,12 @@ void show_stack(struct task_struct *task, unsigned long *stack)
                if (stack + 1 > endstack)
                        break;
                if (i % 8 == 0)
-                       printk(KERN_EMERG "\n       ");
-               printk(KERN_EMERG " %08lx", *stack++);
+                       printk("\n" KERN_EMERG "       ");
+               printk(" %08lx", *stack++);
        }
+       printk("\n");
 
-       printk(KERN_EMERG "\nCall Trace:");
+       printk(KERN_EMERG "Call Trace:");
        i = 0;
        while (stack + 1 <= endstack) {
                addr = *stack++;
@@ -146,18 +146,18 @@ void show_stack(struct task_struct *task, unsigned long *stack)
                if (((addr >= (unsigned long) &_start) &&
                     (addr <= (unsigned long) &_etext))) {
                        if (i % 4 == 0)
-                               printk(KERN_EMERG "\n       ");
-                       printk(KERN_EMERG " [<%08lx>]", addr);
+                               printk("\n" KERN_EMERG "       ");
+                       printk(" [<%08lx>]", addr);
                        i++;
                }
        }
-       printk(KERN_EMERG "\n");
+       printk("\n");
 }
 
 void bad_super_trap(struct frame *fp)
 {
        console_verbose();
-       if (fp->ptregs.vector < 4*sizeof(vec_names)/sizeof(vec_names[0]))
+       if (fp->ptregs.vector < 4 * ARRAY_SIZE(vec_names))
                printk (KERN_WARNING "*** %s ***   FORMAT=%X\n",
                        vec_names[(fp->ptregs.vector) >> 2],
                        fp->ptregs.format);