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 e289376198e..3d2c6baae96 100644 --- a/arch/sparc/kernel/irq_64.c +++ b/arch/sparc/kernel/irq_64.c @@ -252,9 +252,10 @@ struct irq_handler_data {  #ifdef CONFIG_SMP  static int irq_choose_cpu(unsigned int virt_irq)  { -	cpumask_t mask = irq_desc[virt_irq].affinity; +	cpumask_t mask;  	int cpuid; +	cpumask_copy(&mask, irq_desc[virt_irq].affinity);  	if (cpus_equal(mask, CPU_MASK_ALL)) {  		static int irq_rover;  		static DEFINE_SPINLOCK(irq_rover_lock); @@ -796,7 +797,7 @@ void fixup_irqs(void)  		    !(irq_desc[irq].status & IRQ_PER_CPU)) {  			if (irq_desc[irq].chip->set_affinity)  				irq_desc[irq].chip->set_affinity(irq, -					&irq_desc[irq].affinity); +					irq_desc[irq].affinity);  		}  		spin_unlock_irqrestore(&irq_desc[irq].lock, flags);  	}  |