sh: fault: modernize printing of kernel messages

- Convert from printk() to pr_*(),
  - Add missing continuations,
  - Use "%llx" to format u64,
  - Join multiple prints in show_fault_oops() into a single print.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Brian Cain <bcain@codeaurora.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: James Morse <james.morse@arm.com>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Rich Felker <dalias@libc.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Stafford Horne <shorne@gmail.com>
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Will Deacon <will@kernel.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Link: http://lkml.kernel.org/r/20200414153455.21744-10-rppt@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Geert Uytterhoeven 2020-06-04 16:46:48 -07:00 committed by Linus Torvalds
parent 2fb4706057
commit eaabf98b09

View file

@ -47,10 +47,10 @@ static void show_pte(struct mm_struct *mm, unsigned long addr)
pgd = swapper_pg_dir; pgd = swapper_pg_dir;
} }
printk(KERN_ALERT "pgd = %p\n", pgd); pr_alert("pgd = %p\n", pgd);
pgd += pgd_index(addr); pgd += pgd_index(addr);
printk(KERN_ALERT "[%08lx] *pgd=%0*Lx", addr, pr_alert("[%08lx] *pgd=%0*llx", addr, (u32)(sizeof(*pgd) * 2),
(u32)(sizeof(*pgd) * 2), (u64)pgd_val(*pgd)); (u64)pgd_val(*pgd));
do { do {
pud_t *pud; pud_t *pud;
@ -61,33 +61,33 @@ static void show_pte(struct mm_struct *mm, unsigned long addr)
break; break;
if (pgd_bad(*pgd)) { if (pgd_bad(*pgd)) {
printk("(bad)"); pr_cont("(bad)");
break; break;
} }
pud = pud_offset(pgd, addr); pud = pud_offset(pgd, addr);
if (PTRS_PER_PUD != 1) if (PTRS_PER_PUD != 1)
printk(", *pud=%0*Lx", (u32)(sizeof(*pud) * 2), pr_cont(", *pud=%0*llx", (u32)(sizeof(*pud) * 2),
(u64)pud_val(*pud)); (u64)pud_val(*pud));
if (pud_none(*pud)) if (pud_none(*pud))
break; break;
if (pud_bad(*pud)) { if (pud_bad(*pud)) {
printk("(bad)"); pr_cont("(bad)");
break; break;
} }
pmd = pmd_offset(pud, addr); pmd = pmd_offset(pud, addr);
if (PTRS_PER_PMD != 1) if (PTRS_PER_PMD != 1)
printk(", *pmd=%0*Lx", (u32)(sizeof(*pmd) * 2), pr_cont(", *pmd=%0*llx", (u32)(sizeof(*pmd) * 2),
(u64)pmd_val(*pmd)); (u64)pmd_val(*pmd));
if (pmd_none(*pmd)) if (pmd_none(*pmd))
break; break;
if (pmd_bad(*pmd)) { if (pmd_bad(*pmd)) {
printk("(bad)"); pr_cont("(bad)");
break; break;
} }
@ -96,11 +96,11 @@ static void show_pte(struct mm_struct *mm, unsigned long addr)
break; break;
pte = pte_offset_kernel(pmd, addr); pte = pte_offset_kernel(pmd, addr);
printk(", *pte=%0*Lx", (u32)(sizeof(*pte) * 2), pr_cont(", *pte=%0*llx", (u32)(sizeof(*pte) * 2),
(u64)pte_val(*pte)); (u64)pte_val(*pte));
} while (0); } while (0);
printk("\n"); pr_cont("\n");
} }
static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
@ -188,14 +188,12 @@ show_fault_oops(struct pt_regs *regs, unsigned long address)
if (!oops_may_print()) if (!oops_may_print())
return; return;
printk(KERN_ALERT "BUG: unable to handle kernel ");
if (address < PAGE_SIZE)
printk(KERN_CONT "NULL pointer dereference");
else
printk(KERN_CONT "paging request");
printk(KERN_CONT " at %08lx\n", address);
printk(KERN_ALERT "PC:"); printk(KERN_ALERT "PC:");
pr_alert("BUG: unable to handle kernel %s at %08lx\n",
address < PAGE_SIZE ? "NULL pointer dereference"
: "paging request",
address);
pr_alert("PC:");
printk_address(regs->pc, 1); printk_address(regs->pc, 1);
show_pte(NULL, address); show_pte(NULL, address);