aboutsummaryrefslogtreecommitdiff
path: root/arch/alpha/kernel/irq_alpha.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-10-08 14:36:08 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-08 12:32:35 -0700
commit7ca56053b29633ef08b14e5ca16c663363edac36 (patch)
treef8940145602aca5ea9ff35c9c8b5dc508e23d611 /arch/alpha/kernel/irq_alpha.c
parent8dab42a96781a1100a6b5cc6a66953fc51c30bc1 (diff)
[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/irq_alpha.c')
-rw-r--r--arch/alpha/kernel/irq_alpha.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index ddf5cf8dcb0..d14cc423aa4 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -39,6 +39,7 @@ asmlinkage void
do_entInt(unsigned long type, unsigned long vector,
unsigned long la_ptr, struct pt_regs *regs)
{
+ struct pt_regs *old_regs;
switch (type) {
case 0:
#ifdef CONFIG_SMP
@@ -72,7 +73,9 @@ do_entInt(unsigned long type, unsigned long vector,
alpha_mv.machine_check(vector, la_ptr, regs);
return;
case 3:
- alpha_mv.device_interrupt(vector, regs);
+ old_regs = set_irq_regs(regs);
+ alpha_mv.device_interrupt(vector);
+ set_irq_regs(old_regs);
return;
case 4:
perf_irq(la_ptr, regs);