aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/genex.S14
-rw-r--r--arch/mips/kernel/traps.c2
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 13f22d1d0e8b..04418b6568b0 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -122,6 +122,20 @@ handle_vcei:
122 .set pop 122 .set pop
123 END(except_vec3_r4000) 123 END(except_vec3_r4000)
124 124
125 __FINIT
126
127 .align 5
128NESTED(handle_int, PT_SIZE, sp)
129 SAVE_ALL
130 CLI
131
132 PTR_LA ra, ret_from_irq
133 move a0, sp
134 j plat_irq_dispatch
135 END(handle_int)
136
137 __INIT
138
125/* 139/*
126 * Special interrupt vector for MIPS64 ISA & embedded MIPS processors. 140 * Special interrupt vector for MIPS64 ISA & embedded MIPS processors.
127 * This is a dedicated interrupt exception vector which reduces the 141 * This is a dedicated interrupt exception vector which reduces the
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 857319085255..61efc61c45e2 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -42,6 +42,7 @@
42#include <asm/watch.h> 42#include <asm/watch.h>
43#include <asm/types.h> 43#include <asm/types.h>
44 44
45extern asmlinkage void handle_int(void);
45extern asmlinkage void handle_tlbm(void); 46extern asmlinkage void handle_tlbm(void);
46extern asmlinkage void handle_tlbl(void); 47extern asmlinkage void handle_tlbl(void);
47extern asmlinkage void handle_tlbs(void); 48extern asmlinkage void handle_tlbs(void);
@@ -1296,6 +1297,7 @@ void __init trap_init(void)
1296 if (board_be_init) 1297 if (board_be_init)
1297 board_be_init(); 1298 board_be_init();
1298 1299
1300 set_except_vector(0, handle_int);
1299 set_except_vector(1, handle_tlbm); 1301 set_except_vector(1, handle_tlbm);
1300 set_except_vector(2, handle_tlbl); 1302 set_except_vector(2, handle_tlbl);
1301 set_except_vector(3, handle_tlbs); 1303 set_except_vector(3, handle_tlbs);