diff options
Diffstat (limited to 'arch/sparc/kernel/leon_kernel.c')
| -rw-r--r-- | arch/sparc/kernel/leon_kernel.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/kernel/leon_kernel.c b/arch/sparc/kernel/leon_kernel.c index 4c61da491fee..a43cf794bb1e 100644 --- a/arch/sparc/kernel/leon_kernel.c +++ b/arch/sparc/kernel/leon_kernel.c @@ -106,13 +106,12 @@ unsigned long leon_get_irqmask(unsigned int irq)  #ifdef CONFIG_SMP  static int irq_choose_cpu(const struct cpumask *affinity)  { -	cpumask_t mask; +	unsigned int cpu = cpumask_first_and(affinity, cpu_online_mask); -	cpumask_and(&mask, cpu_online_mask, affinity); -	if (cpumask_equal(&mask, cpu_online_mask) || cpumask_empty(&mask)) +	if (cpumask_subset(cpu_online_mask, affinity) || cpu >= nr_cpu_ids)  		return boot_cpu_id;  	else -		return cpumask_first(&mask); +		return cpu;  }  #else  #define irq_choose_cpu(affinity) boot_cpu_id  |