diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2006-06-25 05:47:01 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 10:00:57 -0700 |
commit | 68387c448b7f2b3e2bfa0f606391cd3b602b1997 (patch) | |
tree | a6a5d209ae09a3bbaf4e1614ea4b2bd4920e6c56 /arch/m68k/kernel/entry.S | |
parent | b5dc7840b3ebe9c7967dd8ba73db957767009ff9 (diff) | |
download | lwn-68387c448b7f2b3e2bfa0f606391cd3b602b1997.tar.gz lwn-68387c448b7f2b3e2bfa0f606391cd3b602b1997.zip |
[PATCH] m68k: convert generic irq code to irq controller
Convert the generic irq code to use irq controller, this gets rid of the
machine specific callbacks and gives better control over irq handling without
duplicating lots of code.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
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 @@ .globl sys_call_table .globl sys_fork, sys_clone, sys_vfork .globl ret_from_interrupt, bad_interrupt +.globl auto_irqhandler_fixup +.globl user_irqvec_fixup, user_irqhandler_fixup .text ENTRY(buserr) @@ -212,6 +214,7 @@ ENTRY(auto_inthandler) jbra 3f 1: #endif +auto_irqhandler_fixup = . + 2 jsr m68k_handle_int | process the IRQ 3: addql #8,%sp | pop parameters off stack @@ -234,17 +237,19 @@ ret_from_last_interrupt: /* Handler for user defined interrupt vectors */ -ENTRY(mach_inthandler) +ENTRY(user_inthandler) SAVE_ALL_INT GET_CURRENT(%d0) addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1) | put exception # in d0 bfextu %sp@(PT_VECTOR){#4,#10},%d0 +user_irqvec_fixup = . + 2 + subw #VEC_USER,%d0 movel %sp,%sp@- movel %d0,%sp@- | put vector # on stack - movel mach_process_int,%a0 - jsr %a0@ | process the IRQ +user_irqhandler_fixup = . + 2 + jsr m68k_handle_int | process the IRQ addql #8,%sp | pop parameters off stack subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1) |