summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/sys_titan.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-10-08 15:36:08 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-08 21:32:35 +0200
commit7ca56053b29633ef08b14e5ca16c663363edac36 (patch)
treef8940145602aca5ea9ff35c9c8b5dc508e23d611 /arch/alpha/kernel/sys_titan.c
parent[PATCH] m68k pt_regs fixes, part 2 (diff)
downloadlinux-7ca56053b29633ef08b14e5ca16c663363edac36.tar.xz
linux-7ca56053b29633ef08b14e5ca16c663363edac36.zip
[PATCH] alpha pt_regs cleanups: device_interrupt
callers of ->device_interrupt() do set_irq_regs() now; pt_regs argument removed, remaining uses of regs in instances of ->device_interrupt() are switched to get_irq_regs() and will be gone in the next patch. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/alpha/kernel/sys_titan.c')
-rw-r--r--arch/alpha/kernel/sys_titan.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c
index 302aab38d95f..1473aa0e6982 100644
--- a/arch/alpha/kernel/sys_titan.c
+++ b/arch/alpha/kernel/sys_titan.c
@@ -167,18 +167,18 @@ titan_set_irq_affinity(unsigned int irq, cpumask_t affinity)
}
static void
-titan_device_interrupt(unsigned long vector, struct pt_regs * regs)
+titan_device_interrupt(unsigned long vector)
{
printk("titan_device_interrupt: NOT IMPLEMENTED YET!! \n");
}
static void
-titan_srm_device_interrupt(unsigned long vector, struct pt_regs * regs)
+titan_srm_device_interrupt(unsigned long vector)
{
int irq;
irq = (vector - 0x800) >> 4;
- handle_irq(irq, regs);
+ handle_irq(irq, get_irq_regs());
}
@@ -245,6 +245,7 @@ titan_legacy_init_irq(void)
void
titan_dispatch_irqs(u64 mask, struct pt_regs *regs)
{
+ struct pt_regs *old_regs;
unsigned long vector;
/*
@@ -252,6 +253,7 @@ titan_dispatch_irqs(u64 mask, struct pt_regs *regs)
*/
mask &= titan_cpu_irq_affinity[smp_processor_id()];
+ old_regs = set_irq_regs(regs);
/*
* Dispatch all requested interrupts
*/
@@ -263,8 +265,9 @@ titan_dispatch_irqs(u64 mask, struct pt_regs *regs)
vector = 0x900 + (vector << 4); /* convert to SRM vector */
/* dispatch it */
- alpha_mv.device_interrupt(vector, regs);
+ alpha_mv.device_interrupt(vector);
}
+ set_irq_regs(old_regs);
}