From: Christoph Hellwig Date: Mon, 20 Jul 2020 11:43:14 +0000 (+0200) Subject: m68k: Use get_kernel_nofault() in show_registers() X-Git-Tag: v5.15~2768^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c75e59e401b66971d166780c9fad5f741db2c54e;p=platform%2Fkernel%2Flinux-starfive.git m68k: Use get_kernel_nofault() in show_registers() Use the proper get_kernel_nofault() helper to access an unsafe kernel pointer without faulting instead of playing with set_fs() and get_user(). Signed-off-by: Christoph Hellwig Link: https://lore.kernel.org/r/20200720114314.196686-1-hch@lst.de Signed-off-by: Geert Uytterhoeven --- diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c index 546e8193..9e12614 100644 --- a/arch/m68k/kernel/traps.c +++ b/arch/m68k/kernel/traps.c @@ -845,7 +845,6 @@ static void show_trace(unsigned long *stack, const char *loglvl) void show_registers(struct pt_regs *regs) { struct frame *fp = (struct frame *)regs; - mm_segment_t old_fs = get_fs(); u16 c, *cp; unsigned long addr; int i; @@ -918,10 +917,9 @@ void show_registers(struct pt_regs *regs) show_stack(NULL, (unsigned long *)addr, KERN_INFO); pr_info("Code:"); - set_fs(KERNEL_DS); cp = (u16 *)regs->pc; for (i = -8; i < 16; i++) { - if (get_user(c, cp + i) && i >= 0) { + if (get_kernel_nofault(c, cp + i) && i >= 0) { pr_cont(" Bad PC value."); break; } @@ -930,7 +928,6 @@ void show_registers(struct pt_regs *regs) else pr_cont(" <%04x>", c); } - set_fs(old_fs); pr_cont("\n"); }