summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-07-08 02:59:00 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-07-08 02:59:00 +0000
commit1fcb7623bc138d780101d7a70cfe29b11f7c67ef (patch)
treee1ec9bb6aa19db16a405fb4393e2a90c38b4c75d /arch/mips/kernel/traps.c
parent458fe58677afb17219d864e100131728038b4f1b (diff)
Merge with Linux 2.4.0-test3-pre5. 64-bit kernel are still not
-Werror clean.
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 3af7202f7..bc1bd5749 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1,5 +1,4 @@
-/* $Id: traps.c,v 1.28 2000/03/13 10:33:02 raiko Exp $
- *
+/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
@@ -332,7 +331,6 @@ void do_fpe(struct pt_regs *regs, unsigned long fcr31)
return;
}
#endif
- lock_kernel();
if (fcr31 & 0x20000) {
/* Retry instruction with flush to zero ... */
if (!(fcr31 & (1<<24))) {
@@ -344,7 +342,7 @@ void do_fpe(struct pt_regs *regs, unsigned long fcr31)
"ctc1\t%0,$31"
: /* No outputs */
: "r" (fcr31));
- goto out;
+ return;
}
pc = regs->cp0_epc + ((regs->cp0_cause & CAUSEF_BD) ? 4 : 0);
if (get_user(insn, (unsigned int *)pc)) {
@@ -358,12 +356,9 @@ void do_fpe(struct pt_regs *regs, unsigned long fcr31)
}
if (compute_return_epc(regs))
- goto out;
+ return;
//force_sig(SIGFPE, current);
printk(KERN_DEBUG "Should send SIGFPE to %s\n", current->comm);
-
-out:
- unlock_kernel();
}
static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode)
@@ -430,7 +425,6 @@ void do_ri(struct pt_regs *regs)
{
unsigned int opcode;
- lock_kernel();
if (!get_insn_opcode(regs, &opcode)) {
if ((opcode & OPCODE) == LL)
simulate_ll(regs, opcode);
@@ -440,7 +434,6 @@ void do_ri(struct pt_regs *regs)
printk("[%s:%ld] Illegal instruction at %08lx ra=%08lx\n",
current->comm, current->pid, regs->cp0_epc, regs->regs[31]);
}
- unlock_kernel();
if (compute_return_epc(regs))
return;
force_sig(SIGILL, current);
@@ -526,10 +519,8 @@ void simulate_sc(struct pt_regs *regp, unsigned int opcode)
void do_ri(struct pt_regs *regs)
{
- lock_kernel();
printk("[%s:%d] Illegal instruction at %08lx ra=%08lx\n",
current->comm, current->pid, regs->cp0_epc, regs->regs[31]);
- unlock_kernel();
if (compute_return_epc(regs))
return;
force_sig(SIGILL, current);