powerpc: Fix irq distribution
authorKim Phillips <kim.phillips@freescale.com>
Thu, 17 May 2012 15:11:45 +0000 (15:11 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 22 May 2012 04:38:26 +0000 (14:38 +1000)
setting CONFIG_IRQ_ALL_CPUS distributes IRQs to CPUs only when
the number of online CPUs equals NR_CPUS.  See commit
280ff97494e0fef4124bee5c52e39b23a18dd283 "sparc64: fix and
optimize irq distribution" for more details.

Using the online mask fixes IRQ-to-CPU distribution on systems
that boot with less than NR_CPUS.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/irq.c

index 641da9e..7835a5e 100644 (file)
@@ -587,7 +587,7 @@ int irq_choose_cpu(const struct cpumask *mask)
 {
        int cpuid;
 
-       if (cpumask_equal(mask, cpu_all_mask)) {
+       if (cpumask_equal(mask, cpu_online_mask)) {
                static int irq_rover;
                static DEFINE_RAW_SPINLOCK(irq_rover_lock);
                unsigned long flags;