summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/traps.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-08-08 18:54:49 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-08-08 18:54:49 +0000
commit5514f4babeeb3af00ee0c325e3cda7a562cc3d65 (patch)
treeedd733879cab73e41324a99ca5da7bc154c4196d /arch/sparc64/kernel/traps.c
parent6a9366db547e958e8c9bf8e1c13bcea6cb2bf393 (diff)
Merge with Linux 2.4.0-test6-pre4.
Diffstat (limited to 'arch/sparc64/kernel/traps.c')
-rw-r--r--arch/sparc64/kernel/traps.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 7b5d32614..de4968ac4 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -1,4 +1,4 @@
-/* $Id: traps.c,v 1.66 2000/05/09 17:40:14 davem Exp $
+/* $Id: traps.c,v 1.67 2000/07/30 23:12:24 davem Exp $
* arch/sparc64/kernel/traps.c
*
* Copyright (C) 1995,1997 David S. Miller (davem@caip.rutgers.edu)
@@ -255,7 +255,6 @@ void bad_trap (struct pt_regs *regs, long lvl)
{
siginfo_t info;
- lock_kernel ();
if (lvl < 0x100) {
char buffer[24];
@@ -270,17 +269,14 @@ void bad_trap (struct pt_regs *regs, long lvl)
info.si_addr = (void *)regs->tpc;
info.si_trapno = lvl - 0x100;
force_sig_info(SIGILL, &info, current);
- unlock_kernel ();
}
void bad_trap_tl1 (struct pt_regs *regs, long lvl)
{
char buffer[24];
- lock_kernel();
sprintf (buffer, "Bad trap %lx at tl>0", lvl);
die_if_kernel (buffer, regs);
- unlock_kernel();
}
void instruction_access_exception (struct pt_regs *regs,
@@ -288,7 +284,6 @@ void instruction_access_exception (struct pt_regs *regs,
{
siginfo_t info;
- lock_kernel();
if (regs->tstate & TSTATE_PRIV) {
#if 1
printk("instruction_access_exception: Shit SFSR[%016lx] SFAR[%016lx], going.\n",
@@ -302,7 +297,6 @@ void instruction_access_exception (struct pt_regs *regs,
info.si_addr = (void *)regs->tpc;
info.si_trapno = 0;
force_sig_info(SIGSEGV, &info, current);
- unlock_kernel();
}
void data_access_exception (struct pt_regs *regs,
@@ -343,9 +337,7 @@ void data_access_exception (struct pt_regs *regs,
info.si_code = SEGV_MAPERR;
info.si_addr = (void *)sfar;
info.si_trapno = 0;
- lock_kernel();
force_sig_info(SIGSEGV, &info, current);
- unlock_kernel();
}
#ifdef CONFIG_PCI
@@ -389,9 +381,7 @@ void do_iae(struct pt_regs *regs)
info.si_code = BUS_OBJERR;
info.si_addr = (void *)0;
info.si_trapno = 0;
- lock_kernel();
force_sig_info(SIGBUS, &info, current);
- unlock_kernel();
}
void do_dae(struct pt_regs *regs)
@@ -692,7 +682,6 @@ void die_if_kernel(char *str, struct pt_regs *regs)
smp_report_regs();
#endif
- lock_kernel(); /* Or else! */
if(regs->tstate & TSTATE_PRIV)
do_exit(SIGKILL);
do_exit(SIGSEGV);