diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-08 02:59:00 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-08 02:59:00 +0000 |
commit | 1fcb7623bc138d780101d7a70cfe29b11f7c67ef (patch) | |
tree | e1ec9bb6aa19db16a405fb4393e2a90c38b4c75d /arch/mips/kernel/traps.c | |
parent | 458fe58677afb17219d864e100131728038b4f1b (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.c | 15 |
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); |