29 lines
996 B
Diff
29 lines
996 B
Diff
From: Ingo Molnar <mingo@elte.hu>
|
|
Date: Fri, 3 Jul 2009 08:29:27 -0500
|
|
Subject: x86/ioapic: Do not unmask io_apic when interrupt is in progress
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patches-4.8.6-rt5.tar.xz
|
|
|
|
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>
|
|
|
|
---
|
|
xXx
|
|
arch/x86/kernel/apic/io_apic.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- a/arch/x86/kernel/apic/io_apic.c
|
|
+++ b/arch/x86/kernel/apic/io_apic.c
|
|
@@ -1712,7 +1712,8 @@ static bool io_apic_level_ack_pending(st
|
|
static inline bool ioapic_irqd_mask(struct irq_data *data)
|
|
{
|
|
/* 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_irq(data);
|
|
return true;
|
|
}
|