x86: don't show trace beyond show_stack(NULL, NULL)
[firefly-linux-kernel-4.4.55.git] / arch / x86 / kernel / dumpstack.c
index c8797d55b24546eb7b3ea4abaeffe89d826d7655..dd1a7c391c90e5246d6b1aa2c01f8ed65da6239f 100644 (file)
@@ -176,7 +176,19 @@ void show_trace(struct task_struct *task, struct pt_regs *regs,
 
 void show_stack(struct task_struct *task, unsigned long *sp)
 {
-       show_stack_log_lvl(task, NULL, sp, 0, "");
+       unsigned long bp = 0;
+       unsigned long stack;
+
+       /*
+        * Stack frames below this one aren't interesting.  Don't show them
+        * if we're printing for %current.
+        */
+       if (!sp && (!task || task == current)) {
+               sp = &stack;
+               bp = stack_frame(current, NULL);
+       }
+
+       show_stack_log_lvl(task, NULL, sp, bp, "");
 }
 
 /*