aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/irq.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-10-07 09:17:31 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-07 13:51:14 -0400
commit8774cb815f2492a95b90a927f93a2de555753b32 (patch)
tree40725c7a7b0618811b2f09753a4e4cd88c1db3e2 /arch/alpha/kernel/irq.c
parent2850bc273776cbb1b510c5828e9e456dffb50a32 (diff)
[PATCH] minimal alpha pt_regs fixes
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/alpha/kernel/irq.c')
-rw-r--r--arch/alpha/kernel/irq.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index 729c475d2269..dba4e70926f5 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -129,6 +129,7 @@ unlock:
129void 129void
130handle_irq(int irq, struct pt_regs * regs) 130handle_irq(int irq, struct pt_regs * regs)
131{ 131{
132 struct pt_regs *old_regs;
132 /* 133 /*
133 * We ack quickly, we don't want the irq controller 134 * We ack quickly, we don't want the irq controller
134 * thinking we're snobs just because some other CPU has 135 * thinking we're snobs just because some other CPU has
@@ -149,6 +150,7 @@ handle_irq(int irq, struct pt_regs * regs)
149 return; 150 return;
150 } 151 }
151 152
153 old_regs = set_irq_regs(regs);
152 irq_enter(); 154 irq_enter();
153 /* 155 /*
154 * __do_IRQ() must be called with IPL_MAX. Note that we do not 156 * __do_IRQ() must be called with IPL_MAX. Note that we do not
@@ -157,6 +159,7 @@ handle_irq(int irq, struct pt_regs * regs)
157 * at IPL 0. 159 * at IPL 0.
158 */ 160 */
159 local_irq_disable(); 161 local_irq_disable();
160 __do_IRQ(irq, regs); 162 __do_IRQ(irq);
161 irq_exit(); 163 irq_exit();
164 set_irq_regs(old_regs);
162} 165}