]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/blob - rt-patches/0021-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
WAR:media:i2c:ov5693: add flip and mirror setting
[hercules2020/nv-tegra/linux-4.4.git] / rt-patches / 0021-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch
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
5  in progress
6
7 With threaded interrupts we might see an interrupt in progress on
8 migration. Do not unmask it when this is the case.
9
10 Signed-off-by: Ingo Molnar <mingo@elte.hu>
11 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
12 ---
13  arch/x86/kernel/apic/io_apic.c | 3 ++-
14  1 file changed, 2 insertions(+), 1 deletion(-)
15
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)
22  {
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);
28                 return true;
29         }
30 -- 
31 2.7.4
32