patch-2.2.4 linux/arch/sparc64/kernel/traps.c
Next file: linux/arch/sparc64/kernel/unaligned.c
Previous file: linux/arch/sparc64/kernel/trampoline.S
Back to the patch index
Back to the overall index
- Lines: 59
- Date:
Wed Mar 10 16:53:37 1999
- Orig file:
v2.2.3/linux/arch/sparc64/kernel/traps.c
- Orig date:
Sun Nov 8 14:02:48 1998
diff -u --recursive --new-file v2.2.3/linux/arch/sparc64/kernel/traps.c linux/arch/sparc64/kernel/traps.c
@@ -1,8 +1,8 @@
-/* $Id: traps.c,v 1.55 1998/10/11 06:58:22 davem Exp $
+/* $Id: traps.c,v 1.57 1999/03/02 15:42:18 jj Exp $
* arch/sparc64/kernel/traps.c
*
* Copyright (C) 1995,1997 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ * Copyright (C) 1997,1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
/*
@@ -462,6 +462,9 @@
void die_if_kernel(char *str, struct pt_regs *regs)
{
+ extern void __show_regs(struct pt_regs * regs);
+ extern void smp_report_regs(void);
+
/* Amuse the user. */
printk(
" \\|/ ____ \\|/\n"
@@ -471,7 +474,7 @@
printk("%s(%d): %s\n", current->comm, current->pid, str);
__asm__ __volatile__("flushw");
- show_regs(regs);
+ __show_regs(regs);
{
struct reg_window *rw = (struct reg_window *)
(regs->u_regs[UREG_FP] + STACK_BIAS);
@@ -491,6 +494,10 @@
printk("Instruction DUMP:");
instruction_dump ((unsigned int *) regs->tpc);
}
+#ifdef __SMP__
+ smp_report_regs();
+#endif
+
lock_kernel(); /* Or else! */
if(regs->tstate & TSTATE_PRIV)
do_exit(SIGKILL);
@@ -498,7 +505,7 @@
}
extern int handle_popc(u32 insn, struct pt_regs *regs);
-extern int handle_ldq_stq(u32 insn, struct pt_regs *regs);
+extern int handle_ldf_stq(u32 insn, struct pt_regs *regs);
void do_illegal_instruction(struct pt_regs *regs)
{
@@ -515,7 +522,7 @@
if (handle_popc(insn, regs))
return;
} else if ((insn & 0xc1580000) == 0xc1100000) /* LDQ/STQ */ {
- if (handle_ldq_stq(insn, regs))
+ if (handle_ldf_stq(insn, regs))
return;
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)