aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2005-08-17 13:44:08 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:32:10 -0400
commit340ee4b98c0543b5632cac975a7449a2d28762d8 (patch)
tree94b7315d53d6eadd145c8691f0a9925f5ae389f5 /arch/mips/kernel/traps.c
parentd03d0a57754cb820d318d2234c60b728eb38a94d (diff)
Virtual SMP support for the 34K.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 876aff71cd2e..e38f24b2b3db 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -28,6 +28,8 @@
28#include <asm/cpu.h> 28#include <asm/cpu.h>
29#include <asm/dsp.h> 29#include <asm/dsp.h>
30#include <asm/fpu.h> 30#include <asm/fpu.h>
31#include <asm/mipsregs.h>
32#include <asm/mipsmtregs.h>
31#include <asm/module.h> 33#include <asm/module.h>
32#include <asm/pgtable.h> 34#include <asm/pgtable.h>
33#include <asm/ptrace.h> 35#include <asm/ptrace.h>
@@ -56,6 +58,7 @@ extern asmlinkage void handle_tr(void);
56extern asmlinkage void handle_fpe(void); 58extern asmlinkage void handle_fpe(void);
57extern asmlinkage void handle_mdmx(void); 59extern asmlinkage void handle_mdmx(void);
58extern asmlinkage void handle_watch(void); 60extern asmlinkage void handle_watch(void);
61extern asmlinkage void handle_mt(void);
59extern asmlinkage void handle_dsp(void); 62extern asmlinkage void handle_dsp(void);
60extern asmlinkage void handle_mcheck(void); 63extern asmlinkage void handle_mcheck(void);
61extern asmlinkage void handle_reserved(void); 64extern asmlinkage void handle_reserved(void);
@@ -797,6 +800,14 @@ asmlinkage void do_mcheck(struct pt_regs *regs)
797 (regs->cp0_status & ST0_TS) ? "" : "not "); 800 (regs->cp0_status & ST0_TS) ? "" : "not ");
798} 801}
799 802
803asmlinkage void do_mt(struct pt_regs *regs)
804{
805 die_if_kernel("MIPS MT Thread exception in kernel", regs);
806
807 force_sig(SIGILL, current);
808}
809
810
800asmlinkage void do_dsp(struct pt_regs *regs) 811asmlinkage void do_dsp(struct pt_regs *regs)
801{ 812{
802 if (cpu_has_dsp) 813 if (cpu_has_dsp)
@@ -1338,6 +1349,9 @@ void __init trap_init(void)
1338 if (cpu_has_mcheck) 1349 if (cpu_has_mcheck)
1339 set_except_vector(24, handle_mcheck); 1350 set_except_vector(24, handle_mcheck);
1340 1351
1352 if (cpu_has_mipsmt)
1353 set_except_vector(25, handle_mt);
1354
1341 if (cpu_has_dsp) 1355 if (cpu_has_dsp)
1342 set_except_vector(26, handle_dsp); 1356 set_except_vector(26, handle_dsp);
1343 1357