diff options
Diffstat (limited to 'arch/parisc/kernel/irq.c')
-rw-r--r-- | arch/parisc/kernel/irq.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 2ece7c7939f..b39c5b9aff4 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
@@ -347,12 +347,14 @@ static inline int eirr_to_irq(unsigned long eirr) | |||
347 | /* ONLY called from entry.S:intr_extint() */ | 347 | /* ONLY called from entry.S:intr_extint() */ |
348 | void do_cpu_irq_mask(struct pt_regs *regs) | 348 | void do_cpu_irq_mask(struct pt_regs *regs) |
349 | { | 349 | { |
350 | struct pt_regs *old_regs; | ||
350 | unsigned long eirr_val; | 351 | unsigned long eirr_val; |
351 | int irq, cpu = smp_processor_id(); | 352 | int irq, cpu = smp_processor_id(); |
352 | #ifdef CONFIG_SMP | 353 | #ifdef CONFIG_SMP |
353 | cpumask_t dest; | 354 | cpumask_t dest; |
354 | #endif | 355 | #endif |
355 | 356 | ||
357 | old_regs = set_irq_regs(regs); | ||
356 | local_irq_disable(); | 358 | local_irq_disable(); |
357 | irq_enter(); | 359 | irq_enter(); |
358 | 360 | ||
@@ -379,6 +381,7 @@ void do_cpu_irq_mask(struct pt_regs *regs) | |||
379 | 381 | ||
380 | out: | 382 | out: |
381 | irq_exit(); | 383 | irq_exit(); |
384 | set_irq_regs(old_regs); | ||
382 | return; | 385 | return; |
383 | 386 | ||
384 | set_out: | 387 | set_out: |