diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-07-03 08:29:27 -0500 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2012-04-10 16:39:55 -0500 |
commit | b4df9ff69f9ae2a1921462cef46ee354e155e5ad (patch) | |
tree | ffd0f41fa3afe4efd9f145ca8f03823d9c77db23 /arch | |
parent | 872bd12db78d07851937e4483c5b943bdbf4720f (diff) |
x86: Do not unmask io_apic when interrupt is in progress
With threaded interrupts we might see an interrupt in progress on
migration. Do not unmask it when this is the case.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index e88300d8e80a..01c76a0f2845 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -2555,7 +2555,8 @@ atomic_t irq_mis_count; static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg) { /* If we are moving the irq we need to mask it */ - if (unlikely(irqd_is_setaffinity_pending(data))) { + if (unlikely(irqd_is_setaffinity_pending(data) && + !irqd_irq_inprogress(data))) { mask_ioapic(cfg); return true; } |