[tip:x86/urgent] x86/fixup_irq: Use cpu_online_mask instead of cpu_all_mask

From: tip-bot for Liu, Chuansheng
Date: Wed Aug 22 2012 - 05:03:47 EST


Commit-ID: 2530cd4f448935c74eeb49f29559589928e4b2f0
Gitweb: http://git.kernel.org/tip/2530cd4f448935c74eeb49f29559589928e4b2f0
Author: Liu, Chuansheng <chuansheng.liu@xxxxxxxxx>
AuthorDate: Tue, 14 Aug 2012 06:55:01 +0000
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Wed, 22 Aug 2012 10:36:08 +0200

x86/fixup_irq: Use cpu_online_mask instead of cpu_all_mask

When one CPU is going down and this CPU is the last one in irq
affinity, current code is setting cpu_all_mask as the new
affinity for that irq.

But for some systems (such as in Medfield Android mobile) the
firmware sends the interrupt to each CPU in the irq affinity
mask, averaged, and cpu_all_mask includes all potential CPUs,
i.e. offline ones as well.

So replace cpu_all_mask with cpu_online_mask.

Signed-off-by: liu chuansheng <chuansheng.liu@xxxxxxxxx>
Acked-by: Yanmin Zhang <yanmin_zhang@xxxxxxxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/27240C0AC20F114CBF8149A2696CBE4A137286@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
arch/x86/kernel/irq.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 7ad683d..d44f782 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -270,7 +270,7 @@ void fixup_irqs(void)

if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
break_affinity = 1;
- affinity = cpu_all_mask;
+ affinity = cpu_online_mask;
}

chip = irq_data_get_irq_chip(data);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/