Commit dbf3e950 authored by David S. Miller's avatar David S. Miller

sparc64: Kill __show_regs().

The story is that what we used to do when we actually used
smp_report_regs() is that if you specifically only wanted to have the
current cpu's registers dumped you would call "__show_regs()"
otherwise you would call show_regs() which also invoked
smp_report_regs().

Now that we killed off smp_report_regs() there is no longer any
reason to have these two routines, just show_regs() is sufficient.

Also kill off a stray declaration of show_regs() in sparc64_ksym.c
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6717c282
...@@ -211,22 +211,8 @@ static void show_regwindow(struct pt_regs *regs) ...@@ -211,22 +211,8 @@ static void show_regwindow(struct pt_regs *regs)
printk("I7: <%pS>\n", (void *) rwk->ins[7]); printk("I7: <%pS>\n", (void *) rwk->ins[7]);
} }
#ifdef CONFIG_SMP void show_regs(struct pt_regs *regs)
static DEFINE_SPINLOCK(regdump_lock);
#endif
void __show_regs(struct pt_regs * regs)
{ {
#ifdef CONFIG_SMP
unsigned long flags;
/* Protect against xcall ipis which might lead to livelock on the lock */
__asm__ __volatile__("rdpr %%pstate, %0\n\t"
"wrpr %0, %1, %%pstate"
: "=r" (flags)
: "i" (PSTATE_IE));
spin_lock(&regdump_lock);
#endif
printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate, printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
regs->tpc, regs->tnpc, regs->y, print_tainted()); regs->tpc, regs->tnpc, regs->y, print_tainted());
printk("TPC: <%pS>\n", (void *) regs->tpc); printk("TPC: <%pS>\n", (void *) regs->tpc);
...@@ -244,16 +230,6 @@ void __show_regs(struct pt_regs * regs) ...@@ -244,16 +230,6 @@ void __show_regs(struct pt_regs * regs)
regs->u_regs[15]); regs->u_regs[15]);
printk("RPC: <%pS>\n", (void *) regs->u_regs[15]); printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
show_regwindow(regs); show_regwindow(regs);
#ifdef CONFIG_SMP
spin_unlock(&regdump_lock);
__asm__ __volatile__("wrpr %0, 0, %%pstate"
: : "r" (flags));
#endif
}
void show_regs(struct pt_regs *regs)
{
__show_regs(regs);
} }
struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
......
...@@ -68,7 +68,6 @@ extern void *__memscan_zero(void *, size_t); ...@@ -68,7 +68,6 @@ extern void *__memscan_zero(void *, size_t);
extern void *__memscan_generic(void *, int, size_t); extern void *__memscan_generic(void *, int, size_t);
extern int __memcmp(const void *, const void *, __kernel_size_t); extern int __memcmp(const void *, const void *, __kernel_size_t);
extern __kernel_size_t strlen(const char *); extern __kernel_size_t strlen(const char *);
extern void show_regs(struct pt_regs *);
extern void syscall_trace(struct pt_regs *, int); extern void syscall_trace(struct pt_regs *, int);
extern void sys_sigsuspend(void); extern void sys_sigsuspend(void);
extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg); extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
......
...@@ -1777,7 +1777,7 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent, ...@@ -1777,7 +1777,7 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
pfx, pfx,
ent->err_raddr, ent->err_size, ent->err_cpu); ent->err_raddr, ent->err_size, ent->err_cpu);
__show_regs(regs); show_regs(regs);
if ((cnt = atomic_read(ocnt)) != 0) { if ((cnt = atomic_read(ocnt)) != 0) {
atomic_set(ocnt, 0); atomic_set(ocnt, 0);
...@@ -2189,7 +2189,7 @@ void die_if_kernel(char *str, struct pt_regs *regs) ...@@ -2189,7 +2189,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
printk("%s(%d): %s [#%d]\n", current->comm, task_pid_nr(current), str, ++die_counter); printk("%s(%d): %s [#%d]\n", current->comm, task_pid_nr(current), str, ++die_counter);
notify_die(DIE_OOPS, str, regs, 0, 255, SIGSEGV); notify_die(DIE_OOPS, str, regs, 0, 255, SIGSEGV);
__asm__ __volatile__("flushw"); __asm__ __volatile__("flushw");
__show_regs(regs); show_regs(regs);
add_taint(TAINT_DIE); add_taint(TAINT_DIE);
if (regs->tstate & TSTATE_PRIV) { if (regs->tstate & TSTATE_PRIV) {
struct reg_window *rw = (struct reg_window *) struct reg_window *rw = (struct reg_window *)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment