return -EINVAL;
 }
 
-void show_stack(struct task_struct *task, unsigned long *stack)
+void show_stack_loglvl(struct task_struct *task, unsigned long *stack,
+                      const char *loglvl)
 {
        struct unwind_state state;
 
-       printk("Call Trace:\n");
+       printk("%sCall Trace:\n", loglvl);
        unwind_for_each_frame(&state, task, NULL, (unsigned long) stack)
-               printk(state.reliable ? " [<%016lx>] %pSR \n" :
-                                       "([<%016lx>] %pSR)\n",
-                      state.ip, (void *) state.ip);
+               printk(state.reliable ? "%s [<%016lx>] %pSR \n" :
+                                       "%s([<%016lx>] %pSR)\n",
+                      loglvl, state.ip, (void *) state.ip);
        debug_show_held_locks(task ? : current);
 }
 
+void show_stack(struct task_struct *task, unsigned long *stack)
+{
+       show_stack_loglvl(task, stack, KERN_DEFAULT);
+}
+
 static void show_last_breaking_event(struct pt_regs *regs)
 {
        printk("Last Breaking-Event-Address:\n");