MIPS: traps: Fix output of show_stacktrace
authorMatt Redfearn <matt.redfearn@imgtec.com>
Wed, 19 Oct 2016 13:33:21 +0000 (14:33 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 3 Nov 2016 23:58:57 +0000 (00:58 +0100)
Since commit 4bcc595ccd80 ("printk: reinstate KERN_CONT for printing
continuation lines") the output from show_stacktrace on MIPS has been
pretty unreadable due to the lack of KERN_CONT markers. Use pr_cont to
provide the appropriate markers & restore the expected output. Also
start a new line with printk such that the presence of timing
information does not interfere with output.

Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: Maciej W. Rozycki <macro@imgtec.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/14430/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/traps.c

index 6ae5ea752d4c4a8f7fc14a78dd0199de232f256f..25ce866b289589a21768ff767227f442f3d588ac 100644 (file)
@@ -174,22 +174,24 @@ static void show_stacktrace(struct task_struct *task,
        printk("Stack :");
        i = 0;
        while ((unsigned long) sp & (PAGE_SIZE - 1)) {
-               if (i && ((i % (64 / field)) == 0))
-                       printk("\n       ");
+               if (i && ((i % (64 / field)) == 0)) {
+                       pr_cont("\n");
+                       printk("       ");
+               }
                if (i > 39) {
-                       printk(" ...");
+                       pr_cont(" ...");
                        break;
                }
 
                if (__get_user(stackdata, sp++)) {
-                       printk(" (Bad stack address)");
+                       pr_cont(" (Bad stack address)");
                        break;
                }
 
-               printk(" %0*lx", field, stackdata);
+               pr_cont(" %0*lx", field, stackdata);
                i++;
        }
-       printk("\n");
+       pr_cont("\n");
        show_backtrace(task, regs);
 }