summaryrefslogtreecommitdiff
path: root/arch/m68k/kernel/entry.S
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2006-06-25 05:47:01 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 10:00:57 -0700
commit68387c448b7f2b3e2bfa0f606391cd3b602b1997 (patch)
treea6a5d209ae09a3bbaf4e1614ea4b2bd4920e6c56 /arch/m68k/kernel/entry.S
parentb5dc7840b3ebe9c7967dd8ba73db957767009ff9 (diff)
downloadlwn-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.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 @@
.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)