summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiu, Chuansheng <chuansheng.liu@intel.com>2012-08-14 06:55:01 +0000
committerIngo Molnar <mingo@kernel.org>2012-08-22 10:36:08 +0200
commit2530cd4f448935c74eeb49f29559589928e4b2f0 (patch)
tree82f044957c8a1fd9c029748ab9f942122465b227
parent83be4ffa1acbcd529b771f4d2e639b15e2b7957e (diff)
downloadop-kernel-dev-2530cd4f448935c74eeb49f29559589928e4b2f0.zip
op-kernel-dev-2530cd4f448935c74eeb49f29559589928e4b2f0.tar.gz
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@intel.com> Acked-by: Yanmin Zhang <yanmin_zhang@linux.intel.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/27240C0AC20F114CBF8149A2696CBE4A137286@SHSMSX101.ccr.corp.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/kernel/irq.c2
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);
OpenPOWER on IntegriCloud