diff options
Diffstat (limited to 'arch/m68k/kernel/entry.S')
-rw-r--r-- | arch/m68k/kernel/entry.S | 11 |
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 |
53 | ENTRY(buserr) | 55 | ENTRY(buserr) |
@@ -212,6 +214,7 @@ ENTRY(auto_inthandler) | |||
212 | jbra 3f | 214 | jbra 3f |
213 | 1: | 215 | 1: |
214 | #endif | 216 | #endif |
217 | auto_irqhandler_fixup = . + 2 | ||
215 | jsr m68k_handle_int | process the IRQ | 218 | jsr m68k_handle_int | process the IRQ |
216 | 3: addql #8,%sp | pop parameters off stack | 219 | 3: 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 | ||
237 | ENTRY(mach_inthandler) | 240 | ENTRY(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 |
246 | user_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 | 251 | user_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) |