OSDN Git Service

arm64: Call __show_regs directly
authorKefeng Wang <wangkefeng.wang@huawei.com>
Tue, 9 May 2017 01:53:36 +0000 (09:53 +0800)
committerWill Deacon <will.deacon@arm.com>
Tue, 30 May 2017 10:07:41 +0000 (11:07 +0100)
Generic code expects show_regs() to also dump the stack, but arm64's
show_reg() does not do this. Some arm64 callers of show_regs() *only*
want the registers dumped, without the stack.

To enable generic code to work as expected, we need to make
show_regs() dump the stack. Where we only want the registers dumped,
we must use __show_regs().

This patch updates code to use __show_regs() where only registers are
desired. A subsequent patch will modify show_regs().

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/probes/kprobes.c
arch/arm64/mm/fault.c

index c5c4594..d849d98 100644 (file)
@@ -522,9 +522,9 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
                pr_err("current sp %lx does not match saved sp %lx\n",
                       orig_sp, stack_addr);
                pr_err("Saved registers for jprobe %p\n", jp);
-               show_regs(saved_regs);
+               __show_regs(saved_regs);
                pr_err("Current registers\n");
-               show_regs(regs);
+               __show_regs(regs);
                BUG();
        }
        unpause_graph_tracing();
index 37b95df..c3f2b10 100644 (file)
@@ -250,7 +250,7 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr,
                        tsk->comm, task_pid_nr(tsk), inf->name, sig,
                        addr, esr);
                show_pte(tsk->mm, addr);
-               show_regs(regs);
+               __show_regs(regs);
        }
 
        tsk->thread.fault_address = addr;