#define thread_saved_pc(tsk)   (tsk->thread.pc)
 
 void show_trace(struct task_struct *tsk, unsigned long *sp,
-               struct pt_regs *regs);
+               struct pt_regs *regs, const char *loglvl);
 
 #ifdef CONFIG_DUMP_CODE
 void show_code(struct pt_regs *regs);
 
 };
 
 void show_trace(struct task_struct *tsk, unsigned long *sp,
-               struct pt_regs *regs)
+               struct pt_regs *regs, const char *loglvl)
 {
        if (regs && user_mode(regs))
                return;
 
-       printk("\nCall trace:\n");
+       printk("%s\nCall trace:\n", loglvl);
 
-       unwind_stack(tsk, regs, sp, &print_trace_ops, "");
+       unwind_stack(tsk, regs, sp, &print_trace_ops, (void *)loglvl);
 
-       printk("\n");
+       printk("%s\n", loglvl);
 
        if (!tsk)
                tsk = current;
        stack = (unsigned long)sp;
        dump_mem("Stack: ", KERN_DEFAULT, stack, THREAD_SIZE +
                 (unsigned long)task_stack_page(tsk));
-       show_trace(tsk, sp, NULL);
+       show_trace(tsk, sp, NULL, KERN_DEFAULT);
 }
 
        printk("MACH: %08lx MACL: %08lx GBR : %08lx PR  : %08lx\n",
               regs->mach, regs->macl, regs->gbr, regs->pr);
 
-       show_trace(NULL, (unsigned long *)regs->regs[15], regs);
+       show_trace(NULL, (unsigned long *)regs->regs[15], regs, KERN_DEFAULT);
        show_code(regs);
 }