binutils: fix build with host gcc < 4.9
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0577-x86-ioapic-Restore-IO-APIC-irq_chip-retrigger-callba.patch
1 From 1dab2d7f80fa955ff493785033008b2c17f7cc53 Mon Sep 17 00:00:00 2001
2 From: Ruslan Ruslichenko <rruslich@cisco.com>
3 Date: Tue, 17 Jan 2017 16:13:52 +0200
4 Subject: [PATCH] x86/ioapic: Restore IO-APIC irq_chip retrigger callback
5
6 commit 020eb3daaba2857b32c4cf4c82f503d6a00a67de upstream.
7
8 commit d32932d02e18 removed the irq_retrigger callback from the IO-APIC
9 chip and did not add it to the new IO-APIC-IR irq chip.
10
11 Unfortunately the software resend fallback is not enabled on X86, so edge
12 interrupts which are received during the lazy disabled state of the
13 interrupt line are not retriggered and therefor lost.
14
15 Restore the callbacks.
16
17 [ tglx: Massaged changelog ]
18
19 Fixes: d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
20 Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
21 Cc: xe-linux-external@cisco.com
22 Link: http://lkml.kernel.org/r/1484662432-13580-1-git-send-email-rruslich@cisco.com
23 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
24 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
25 ---
26 arch/x86/kernel/apic/io_apic.c | 2 ++
27 1 file changed, 2 insertions(+)
28
29 --- a/arch/x86/kernel/apic/io_apic.c
30 +++ b/arch/x86/kernel/apic/io_apic.c
31 @@ -1875,6 +1875,7 @@ static struct irq_chip ioapic_chip __rea
32 .irq_ack = irq_chip_ack_parent,
33 .irq_eoi = ioapic_ack_level,
34 .irq_set_affinity = ioapic_set_affinity,
35 + .irq_retrigger = irq_chip_retrigger_hierarchy,
36 .flags = IRQCHIP_SKIP_SET_WAKE,
37 };
38
39 @@ -1886,6 +1887,7 @@ static struct irq_chip ioapic_ir_chip __
40 .irq_ack = irq_chip_ack_parent,
41 .irq_eoi = ioapic_ir_ack_level,
42 .irq_set_affinity = ioapic_set_affinity,
43 + .irq_retrigger = irq_chip_retrigger_hierarchy,
44 .flags = IRQCHIP_SKIP_SET_WAKE,
45 };
46