x86: Eliminate pointless adjustment attempts in fixup_irqs()
authorJan Beulich <JBeulich@novell.com>
Thu, 17 Feb 2011 15:54:26 +0000 (15:54 +0000)
committerIngo Molnar <mingo@elte.hu>
Fri, 18 Feb 2011 07:58:00 +0000 (08:58 +0100)
Not only when an IRQ's affinity equals cpu_online_mask is there
no need to actually try to adjust the affinity, but also when
it's a subset thereof. This particularly avoids adjustment
attempts during system shutdown to any IRQs bound to CPU#0.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Gary Hade <garyhade@us.ibm.com>
LKML-Reference: <4D5D52C2020000780003272C@vpn.id2.novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/irq.c

index 387b6a0..78793ef 100644 (file)
@@ -310,7 +310,7 @@ void fixup_irqs(void)
                data = &desc->irq_data;
                affinity = data->affinity;
                if (!irq_has_action(irq) ||
-                   cpumask_equal(affinity, cpu_online_mask)) {
+                   cpumask_subset(affinity, cpu_online_mask)) {
                        raw_spin_unlock(&desc->lock);
                        continue;
                }