aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irq.c
diff options
context:
space:
mode:
authorTian, Kevin <kevin.tian@intel.com>2011-05-06 02:43:56 -0400
committerThomas Gleixner <tglx@linutronix.de>2011-05-19 08:51:08 -0400
commit983bbf1af0664b78689612b247acb514300f62c7 (patch)
tree945ed2ef4399955e515b1bd61fc2a55ed9e4c96e /arch/x86/kernel/irq.c
parentb87ba87ca26e226b2277a2d5613ed596f408e96d (diff)
x86: Don't unmask disabled irqs when migrating them
It doesn't make sense to unconditionally unmask a disabled irq when migrating it from offlined cpu to another. If the irq triggers then it will be disabled in the interrupt handler anyway. So we can just avoid unmasking it. [ tglx: Made masking unconditional again and fixed the changelog ] Signed-off-by: Fengzhe Zhang <fengzhe.zhang@intel.com> Signed-off-by: Kevin Tian <kevin.tian@intel.com> Cc: Ian Campbell <Ian.Campbell@citrix.com> Cc: Jan Beulich <JBeulich@novell.com> Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com> Link: http://lkml.kernel.org/r/%3C625BA99ED14B2D499DC4E29D8138F1505C8ED7F7E3%40shsmsx502.ccr.corp.intel.com%3E Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/irq.c')
-rw-r--r--arch/x86/kernel/irq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 544efe2741be..6c0802eb2f7f 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -276,7 +276,8 @@ void fixup_irqs(void)
276 else if (!(warned++)) 276 else if (!(warned++))
277 set_affinity = 0; 277 set_affinity = 0;
278 278
279 if (!irqd_can_move_in_process_context(data) && chip->irq_unmask) 279 if (!irqd_can_move_in_process_context(data) &&
280 !irqd_irq_disabled(data) && chip->irq_unmask)
280 chip->irq_unmask(data); 281 chip->irq_unmask(data);
281 282
282 raw_spin_unlock(&desc->lock); 283 raw_spin_unlock(&desc->lock);