1 From 92b79ad9c33f87310be7d7260a643079bbbaaab2 Mon Sep 17 00:00:00 2001
2 From: Ingo Molnar <mingo@elte.hu>
3 Date: Fri, 3 Jul 2009 08:29:27 -0500
4 Subject: [PATCH 021/365] x86/ioapic: Do not unmask io_apic when interrupt is
7 With threaded interrupts we might see an interrupt in progress on
8 migration. Do not unmask it when this is the case.
10 Signed-off-by: Ingo Molnar <mingo@elte.hu>
11 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 arch/x86/kernel/apic/io_apic.c | 3 ++-
14 1 file changed, 2 insertions(+), 1 deletion(-)
16 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
17 index fdb0fbf..678c711 100644
18 --- a/arch/x86/kernel/apic/io_apic.c
19 +++ b/arch/x86/kernel/apic/io_apic.c
20 @@ -1711,7 +1711,8 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data)
21 static inline bool ioapic_irqd_mask(struct irq_data *data)
23 /* If we are moving the irq we need to mask it */
24 - if (unlikely(irqd_is_setaffinity_pending(data))) {
25 + if (unlikely(irqd_is_setaffinity_pending(data) &&
26 + !irqd_irq_inprogress(data))) {
27 mask_ioapic_irq(data);