aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2006-10-06 13:09:41 -0400
committerTony Luck <tony.luck@intel.com>2006-10-06 13:09:41 -0400
commit8c1addbc752660e95bbf2128d66b8e5bb38d5fc7 (patch)
tree2a04171d9392abd8935224616cff8109e3e8ea48 /arch/ia64/kernel
parent49f19ce401edfff937c448dd74c22497da361889 (diff)
[IA64] Fix breakage from irq change
A few missed spots in ia64-land from this gigantic commit: 7d12e780e003f93433d49ce78cfedf4b4c52adc5 Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r--arch/ia64/kernel/irq.c5
-rw-r--r--arch/ia64/kernel/irq_ia64.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 7852382de2fa..f07c0864b0b4 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -194,8 +194,11 @@ void fixup_irqs(void)
194 */ 194 */
195 for (irq=0; irq < NR_IRQS; irq++) { 195 for (irq=0; irq < NR_IRQS; irq++) {
196 if (vectors_in_migration[irq]) { 196 if (vectors_in_migration[irq]) {
197 struct pt_regs *old_regs = set_irq_regs(NULL);
198
197 vectors_in_migration[irq]=0; 199 vectors_in_migration[irq]=0;
198 __do_IRQ(irq, NULL); 200 __do_IRQ(irq);
201 set_irq_regs(old_regs);
199 } 202 }
200 } 203 }
201 204
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index 7fd3ef9e064d..68339dd0c9e2 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -226,6 +226,8 @@ void ia64_process_pending_intr(void)
226 */ 226 */
227 while (vector != IA64_SPURIOUS_INT_VECTOR) { 227 while (vector != IA64_SPURIOUS_INT_VECTOR) {
228 if (!IS_RESCHEDULE(vector)) { 228 if (!IS_RESCHEDULE(vector)) {
229 struct pt_regs *old_regs = set_irq_regs(NULL);
230
229 ia64_setreg(_IA64_REG_CR_TPR, vector); 231 ia64_setreg(_IA64_REG_CR_TPR, vector);
230 ia64_srlz_d(); 232 ia64_srlz_d();
231 233
@@ -236,7 +238,8 @@ void ia64_process_pending_intr(void)
236 * Probably could shared code. 238 * Probably could shared code.
237 */ 239 */
238 vectors_in_migration[local_vector_to_irq(vector)]=0; 240 vectors_in_migration[local_vector_to_irq(vector)]=0;
239 __do_IRQ(local_vector_to_irq(vector), NULL); 241 __do_IRQ(local_vector_to_irq(vector));
242 set_irq_regs(old_regs);
240 243
241 /* 244 /*
242 * Disable interrupts and send EOI 245 * Disable interrupts and send EOI
@@ -253,7 +256,7 @@ void ia64_process_pending_intr(void)
253 256
254 257
255#ifdef CONFIG_SMP 258#ifdef CONFIG_SMP
256extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs); 259extern irqreturn_t handle_IPI (int irq, void *dev_id);
257 260
258static struct irqaction ipi_irqaction = { 261static struct irqaction ipi_irqaction = {
259 .handler = handle_IPI, 262 .handler = handle_IPI,