diff options
Diffstat (limited to 'arch/sparc/kernel/irq_64.c')
| -rw-r--r-- | arch/sparc/kernel/irq_64.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c index 8ba064f08a6f..d0d6a515499a 100644 --- a/arch/sparc/kernel/irq_64.c +++ b/arch/sparc/kernel/irq_64.c | |||
| @@ -252,9 +252,10 @@ struct irq_handler_data { | |||
| 252 | #ifdef CONFIG_SMP | 252 | #ifdef CONFIG_SMP |
| 253 | static int irq_choose_cpu(unsigned int virt_irq) | 253 | static int irq_choose_cpu(unsigned int virt_irq) |
| 254 | { | 254 | { |
| 255 | cpumask_t mask = irq_desc[virt_irq].affinity; | 255 | cpumask_t mask; |
| 256 | int cpuid; | 256 | int cpuid; |
| 257 | 257 | ||
| 258 | cpumask_copy(&mask, irq_desc[virt_irq].affinity); | ||
| 258 | if (cpus_equal(mask, CPU_MASK_ALL)) { | 259 | if (cpus_equal(mask, CPU_MASK_ALL)) { |
| 259 | static int irq_rover; | 260 | static int irq_rover; |
| 260 | static DEFINE_SPINLOCK(irq_rover_lock); | 261 | static DEFINE_SPINLOCK(irq_rover_lock); |
| @@ -805,7 +806,7 @@ void fixup_irqs(void) | |||
| 805 | !(irq_desc[irq].status & IRQ_PER_CPU)) { | 806 | !(irq_desc[irq].status & IRQ_PER_CPU)) { |
| 806 | if (irq_desc[irq].chip->set_affinity) | 807 | if (irq_desc[irq].chip->set_affinity) |
| 807 | irq_desc[irq].chip->set_affinity(irq, | 808 | irq_desc[irq].chip->set_affinity(irq, |
| 808 | &irq_desc[irq].affinity); | 809 | irq_desc[irq].affinity); |
| 809 | } | 810 | } |
| 810 | spin_unlock_irqrestore(&irq_desc[irq].lock, flags); | 811 | spin_unlock_irqrestore(&irq_desc[irq].lock, flags); |
| 811 | } | 812 | } |
