2010-07-05 10:32:19

by Jan Beulich

[permalink] [raw]
Subject: [PATCH] x86: eliminate pointless adjustment attempts in fixup_irqs()

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 <[email protected]>

---
arch/x86/kernel/irq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-2.6.35-rc4/arch/x86/kernel/irq.c 2010-02-24 19:52:17.000000000 +0100
+++ 2.6.35-rc4-x86-reduce-irq-fixup/arch/x86/kernel/irq.c 2010-07-05 10:20:16.000000000 +0200
@@ -298,7 +298,7 @@ void fixup_irqs(void)

affinity = desc->affinity;
if (!irq_has_action(irq) ||
- cpumask_equal(affinity, cpu_online_mask)) {
+ cpumask_subset(affinity, cpu_online_mask)) {
raw_spin_unlock(&desc->lock);
continue;
}