diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-05-04 09:12:48 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-05-04 09:12:48 +0000 |
commit | 2e0f55e79c49509b7ff70ff1a10e1e9e90a3dfd4 (patch) | |
tree | 9ff1a23dd500f1c70eb99fcd688d47d38abb0253 /arch/mips/kernel/traps.c | |
parent | bbc6b4b59f51131f040a752cbe20a1805db08b0b (diff) |
o New memset. Fastest in town for size > 6 bytes.
o New clear_user.
o Memcpy now efficiently copies the (src^dest)&3 != 0.
o Memmove new correctly deals with overlaps
o Rewrite csum_partial in assembler.
o Rewrte csum_partial_from_user in assembler.
o __copy_user is now integrated with memcpy.
o get_user now returns a zero value on error.
o copy_from_user now clears the destination buffer on error.
o strncpy_user now has a more efficient caller routine.
o strlen_user now has a more efficient caller routines and is faster.
o The unaligned handler is now much cleaner. It's now also save from
interrupt. Some more esotheric bugs fixed as well.
o Don't export bcopy anymore, it's now a inline function.
o Delete ancient junk from the first days of Linux/MIPS.
o Delete dead code in indy_sc.c.
o Including the IDE driver doesn't crash an Indy anymore.
o Eleminate active_ds. We now use current_ds directly in the thread
structure which is faster and threadsafe. Saves almost 2kb on the
kernel.
o Serial console should work again.
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index b554cad39..7ea3017e5 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -8,7 +8,7 @@ * Copyright 1994, 1995, 1996, 1997 by Ralf Baechle * Modified for R3000 by Paul M. Antoine, 1995, 1996 * - * $Id: traps.c,v 1.9 1998/03/27 04:47:56 ralf Exp $ + * $Id: traps.c,v 1.13 1998/04/04 13:59:39 ralf Exp $ */ #include <linux/config.h> #include <linux/init.h> @@ -387,9 +387,8 @@ void do_vcei(struct pt_regs *regs) { lock_kernel(); /* - * Theory says this exception doesn't happen. - * - * Murphy is right. It does happen ... + * Only possible on R4[04]00[SM]C. No handler because I don't have + * such a cpu. Theory says this exception doesn't happen. */ panic("Caught VCEI exception - should not happen"); unlock_kernel(); @@ -399,11 +398,10 @@ void do_vced(struct pt_regs *regs) { lock_kernel(); /* - * Theory says this exception doesn't happen. - * - * Murphy is right. It does happen ... + * Only possible on R4[04]00[SM]C. No handler because I don't have + * such a cpu. Theory says this exception doesn't happen. */ - panic("Caught VCED exception - should not happen"); + panic("Caught VCE exception - should not happen"); unlock_kernel(); } @@ -547,14 +545,8 @@ __initfunc(void trap_init(void)) case CPU_R4400MC: case CPU_R4000SC: case CPU_R4400SC: - /* - * The following won't work because we _cannot_ perform any - * load/store before the VCE handler. We deal with this - * by checking for for vced / vcei exceptions before doing - * the generic exception handling thing. This costs us - * several instructions, therefore there should be a special - * handler for those CPUs which have these exceptions. - * + /* XXX The following won't work because we _cannot_ + * XXX perform any load/store before the VCE handler. */ set_except_vector(14, handle_vcei); set_except_vector(31, handle_vced); |