From fca6b4eeba246b232aaf2467d90b2962dea07480 Mon Sep 17 00:00:00 2001 From: Wu Liliu Date: Tue, 26 Jul 2022 17:41:11 +0800 Subject: [PATCH] sw64: rename dik_* methods Sunway inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I56OLG -------------------------------- Since die_if_kernel() has been removed, the prefix `dik_` is not appropriate. Remove this prefix and simplify the implementation if there is no one to forward the exception to. Signed-off-by: Wu Liliu Signed-off-by: Gu Zitao --- arch/sw_64/kernel/process.c | 11 ----------- arch/sw_64/kernel/proto.h | 2 +- arch/sw_64/kernel/ptrace.c | 2 +- arch/sw_64/kernel/traps.c | 31 +++++++------------------------ arch/sw_64/mm/fault.c | 4 ++-- 5 files changed, 11 insertions(+), 39 deletions(-) diff --git a/arch/sw_64/kernel/process.c b/arch/sw_64/kernel/process.c index 2508c55311ca..4d223a7255bb 100644 --- a/arch/sw_64/kernel/process.c +++ b/arch/sw_64/kernel/process.c @@ -102,17 +102,6 @@ void machine_power_off(void) } -/* Used by sysrq-p, among others. I don't believe r9-r15 are ever - * saved in the context it's used. - */ - -void -show_regs(struct pt_regs *regs) -{ - show_regs_print_info(KERN_DEFAULT); - dik_show_regs(regs); -} - /* * Re-start a thread when doing execve() */ diff --git a/arch/sw_64/kernel/proto.h b/arch/sw_64/kernel/proto.h index f2b77d370da1..f84629ec05ea 100644 --- a/arch/sw_64/kernel/proto.h +++ b/arch/sw_64/kernel/proto.h @@ -12,7 +12,7 @@ extern int ptrace_set_bpt(struct task_struct *child); extern int ptrace_cancel_bpt(struct task_struct *child); /* traps.c */ -extern void dik_show_regs(struct pt_regs *regs); +extern void show_regs(struct pt_regs *regs); extern void die(char *str, struct pt_regs *regs, long err); /* timer.c */ diff --git a/arch/sw_64/kernel/ptrace.c b/arch/sw_64/kernel/ptrace.c index bdbd0d97a130..064296711b2f 100644 --- a/arch/sw_64/kernel/ptrace.c +++ b/arch/sw_64/kernel/ptrace.c @@ -487,7 +487,7 @@ int do_match(unsigned long address, unsigned long mmcsr, long cause, struct pt_r case MMCSR__DA_MATCH: case MMCSR__DV_MATCH: case MMCSR__DAV_MATCH: - dik_show_regs(regs); + show_regs(regs); if (!(current->ptrace & PT_PTRACED)) { printk(" pid %d %s not be ptraced, return\n", current->pid, current->comm); diff --git a/arch/sw_64/kernel/traps.c b/arch/sw_64/kernel/traps.c index 5f2348dd087f..9915160d95d2 100644 --- a/arch/sw_64/kernel/traps.c +++ b/arch/sw_64/kernel/traps.c @@ -31,8 +31,10 @@ #include "proto.h" -void dik_show_regs(struct pt_regs *regs) +void show_regs(struct pt_regs *regs) { + show_regs_print_info(KERN_DEFAULT); + printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx %s\n", regs->pc, regs->r26, regs->ps, print_tainted()); printk("pc is at %pSR\n", (void *)regs->pc); @@ -62,8 +64,7 @@ void dik_show_regs(struct pt_regs *regs) printk("gp = %016lx sp = %p\n", regs->gp, regs+1); } -static void -dik_show_code(unsigned int *pc) +static void show_code(unsigned int *pc) { long i; unsigned int insn; @@ -93,15 +94,11 @@ void die(char *str, struct pt_regs *regs, long err) pr_emerg("%s [#%d]\n", str, ++die_counter); -#ifdef CONFIG_SMP - printk("CPU %d ", hard_smp_processor_id()); -#endif - printk("%s(%d): %s %ld\n", current->comm, task_pid_nr(current), str, err); - ret = notify_die(DIE_OOPS, str, regs, err, 0, SIGSEGV); print_modules(); - dik_show_regs(regs); + show_regs(regs); + show_code((unsigned int *)regs->pc); show_stack(current, NULL, KERN_EMERG); bust_spinlocks(0); @@ -508,21 +505,7 @@ do_entUna(void *va, unsigned long opcode, unsigned long reg, * Since the registers are in a weird format, dump them ourselves. */ - printk("%s(%d): unhandled unaligned exception\n", - current->comm, task_pid_nr(current)); - - dik_show_regs(regs); - dik_show_code((unsigned int *)pc); - show_stack(current, NULL, KERN_EMERG); - - if (test_and_set_thread_flag(TIF_DIE_IF_KERNEL)) { - printk("die_if_kernel recursion detected.\n"); - local_irq_enable(); - while (1) - asm("nop"); - } - do_exit(SIGSEGV); - + die("Unhandled unaligned exception", regs, error); } /* diff --git a/arch/sw_64/mm/fault.c b/arch/sw_64/mm/fault.c index 3255de5f0019..541e30b4b84c 100644 --- a/arch/sw_64/mm/fault.c +++ b/arch/sw_64/mm/fault.c @@ -32,7 +32,7 @@ static inline int notify_page_fault(struct pt_regs *regs, unsigned long mmcsr) #endif extern void die(char *, struct pt_regs *, long); -extern void dik_show_regs(struct pt_regs *regs); +extern void show_regs(struct pt_regs *regs); void show_all_vma(void) { @@ -325,7 +325,7 @@ do_page_fault(unsigned long address, unsigned long mmcsr, if (unlikely(segv_debug_enabled)) { pr_info("fault: want to send_segv: pid %d, cause = %#lx, mmcsr = %#lx, address = %#lx, pc %#lx\n", current->pid, cause, mmcsr, address, regs->pc); - dik_show_regs(regs); + show_regs(regs); show_all_vma(); } -- GitLab