From 6fc382ccb283fc7bfb7e59a453e5915f00851145 Mon Sep 17 00:00:00 2001 From: jiamin ma Date: Mon, 8 Oct 2018 11:16:00 +0800 Subject: [PATCH] printk: fix user fault debug log in disorder issue 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 --- arch/arm64/kernel/process.c | 6 +++--- arch/arm64/mm/fault.c | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index f458f44..6084d01 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -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 */ diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index c2fca56..719108e 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -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); -- 2.7.4