printk: fix user fault debug log in disorder issue
authorjiamin ma <jiamin.ma@amlogic.com>
Mon, 8 Oct 2018 03:16:00 +0000 (11:16 +0800)
committerjiamin ma <jiamin.ma@amlogic.com>
Mon, 8 Oct 2018 05:55:43 +0000 (13:55 +0800)
PD#154008: the log output is in disorder[2/2]

We should explicitly using pr_cont when try to print continuous
msgs in one line

Change-Id: I0d2f6f462c4b4b95898f9c33a5a1d138030e05e5
Signed-off-by: jiamin ma <jiamin.ma@amlogic.com>
arch/arm64/kernel/process.c
arch/arm64/mm/fault.c

index f458f44..6084d01 100644 (file)
@@ -260,12 +260,12 @@ static void show_user_data(unsigned long addr, int nbytes, const char *name)
 
                        bad = __get_user(data, p);
                        if (bad)
-                               pr_info(" ********");
+                               pr_cont(" ********");
                        else
-                               pr_info(" %08x", data);
+                               pr_cont(" %08x", data);
                        ++p;
                }
-               pr_info("\n");
+               pr_cont("\n");
        }
 }
 #endif /* CONFIG_AMLOGIC_USER_FAULT */
index c2fca56..719108e 100644 (file)
@@ -250,17 +250,19 @@ void show_all_pfn(struct task_struct *task, struct pt_regs *regs)
        else
                top = 31;
        pr_info("reg              value       pfn  ");
-       pr_info("reg              value       pfn\n");
+       pr_cont("reg              value       pfn\n");
        for (i = 0; i < top; i++) {
                pfn1 = get_user_pfn(task->mm, regs->regs[i]);
                if (pfn1 >= 0)
                        sprintf(s1, "%8lx", pfn1);
                else
                        sprintf(s1, "--------");
-               pr_info("r%-2d:  %016llx  %s  ", i, regs->regs[i], s1);
                if (i % 2 == 1)
-                       pr_info("\n");
+                       pr_cont("r%-2d:  %016llx  %s\n", i, regs->regs[i], s1);
+               else
+                       pr_info("r%-2d:  %016llx  %s  ", i, regs->regs[i], s1);
        }
+       pr_cont("\n");
        pfn1 = get_user_pfn(task->mm, regs->pc);
        if (pfn1 >= 0)
                sprintf(s1, "%8lx", pfn1);