diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-07-03 08:29:27 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@rostedt.homelinux.com> | 2014-01-18 17:12:29 -0500 |
commit | d9481e264acaf643ad58c41c7b6ccf39173e4d27 (patch) | |
tree | 6945d5632ed27783d66f518629f2a68203c81b5e /arch | |
parent | ead62c06b31201e0b1d4c112515f51494f89fa2b (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 898055585516..91527bc8a621 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -2521,7 +2521,8 @@ static void ack_apic_level(struct irq_data *data) irq_complete_move(cfg); #ifdef CONFIG_GENERIC_PENDING_IRQ /* 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))) { do_unmask_irq = 1; mask_ioapic(cfg); } |