aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/kernel/entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k/kernel/entry.S')
-rw-r--r--arch/m68k/kernel/entry.S11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S
index 1fb88f3311de..48cccc556e13 100644
--- a/arch/m68k/kernel/entry.S
+++ b/arch/m68k/kernel/entry.S
@@ -48,6 +48,8 @@
48.globl sys_call_table 48.globl sys_call_table
49.globl sys_fork, sys_clone, sys_vfork 49.globl sys_fork, sys_clone, sys_vfork
50.globl ret_from_interrupt, bad_interrupt 50.globl ret_from_interrupt, bad_interrupt
51.globl auto_irqhandler_fixup
52.globl user_irqvec_fixup, user_irqhandler_fixup
51 53
52.text 54.text
53ENTRY(buserr) 55ENTRY(buserr)
@@ -212,6 +214,7 @@ ENTRY(auto_inthandler)
212 jbra 3f 214 jbra 3f
2131: 2151:
214#endif 216#endif
217auto_irqhandler_fixup = . + 2
215 jsr m68k_handle_int | process the IRQ 218 jsr m68k_handle_int | process the IRQ
2163: addql #8,%sp | pop parameters off stack 2193: addql #8,%sp | pop parameters off stack
217 220
@@ -234,17 +237,19 @@ ret_from_last_interrupt:
234 237
235/* Handler for user defined interrupt vectors */ 238/* Handler for user defined interrupt vectors */
236 239
237ENTRY(mach_inthandler) 240ENTRY(user_inthandler)
238 SAVE_ALL_INT 241 SAVE_ALL_INT
239 GET_CURRENT(%d0) 242 GET_CURRENT(%d0)
240 addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1) 243 addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
241 | put exception # in d0 244 | put exception # in d0
242 bfextu %sp@(PT_VECTOR){#4,#10},%d0 245 bfextu %sp@(PT_VECTOR){#4,#10},%d0
246user_irqvec_fixup = . + 2
247 subw #VEC_USER,%d0
243 248
244 movel %sp,%sp@- 249 movel %sp,%sp@-
245 movel %d0,%sp@- | put vector # on stack 250 movel %d0,%sp@- | put vector # on stack
246 movel mach_process_int,%a0 251user_irqhandler_fixup = . + 2
247 jsr %a0@ | process the IRQ 252 jsr m68k_handle_int | process the IRQ
248 addql #8,%sp | pop parameters off stack 253 addql #8,%sp | pop parameters off stack
249 254
250 subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1) 255 subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)