extern int unwind_frame(struct task_struct *tsk, struct stackframe *frame);
 extern void walk_stackframe(struct task_struct *tsk, struct stackframe *frame,
                            int (*fn)(struct stackframe *, void *), void *data);
-extern void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk);
+extern void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk,
+                          const char *loglvl);
 
 DECLARE_PER_CPU(unsigned long *, irq_stack_ptr);
 
 
 
 int show_unhandled_signals = 0;
 
-static void dump_backtrace_entry(unsigned long where)
+static void dump_backtrace_entry(unsigned long where, const char *loglvl)
 {
-       printk(" %pS\n", (void *)where);
+       printk("%s %pS\n", loglvl, (void *)where);
 }
 
 static void dump_kernel_instr(const char *lvl, struct pt_regs *regs)
        printk("%sCode: %s\n", lvl, str);
 }
 
-void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
+void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk,
+                   const char *loglvl)
 {
        struct stackframe frame;
        int skip = 0;
                                thread_saved_pc(tsk));
        }
 
-       printk("Call trace:\n");
+       printk("%sCall trace:\n", loglvl);
        do {
                /* skip until specified stack frame */
                if (!skip) {
-                       dump_backtrace_entry(frame.pc);
+                       dump_backtrace_entry(frame.pc, loglvl);
                } else if (frame.fp == regs->regs[29]) {
                        skip = 0;
                        /*
                         * at which an exception has taken place, use regs->pc
                         * instead.
                         */
-                       dump_backtrace_entry(regs->pc);
+                       dump_backtrace_entry(regs->pc, loglvl);
                }
        } while (!unwind_frame(tsk, &frame));
 
 
 void show_stack(struct task_struct *tsk, unsigned long *sp)
 {
-       dump_backtrace(NULL, tsk);
+       dump_backtrace(NULL, tsk, KERN_DEFAULT);
        barrier();
 }