x86/ioapic: Restore IO-APIC irq_chip retrigger callback

commit d32932d02e18 removed the irq_retrigger callback from the IO-APIC
chip and did not add it to the new IO-APIC-IR irq chip.

Unfortunately the software resend fallback is not enabled on X86, so edge
interrupts which are received during the lazy disabled state of the
interrupt line are not retriggered and therefor lost.

Restore the callbacks.

[ tglx: Massaged changelog ]

Fixes: d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
Signed-off-by: Ruslan Ruslichenko <rruslich@cisco.com>
Cc: xe-linux-external@cisco.com
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1484662432-13580-1-git-send-email-rruslich@cisco.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by Ruslan Ruslichenko and committed by Thomas Gleixner 020eb3da 49def185

Changed files
+2
arch
x86
kernel
apic
+2
arch/x86/kernel/apic/io_apic.c
··· 1875 1875 .irq_ack = irq_chip_ack_parent, 1876 1876 .irq_eoi = ioapic_ack_level, 1877 1877 .irq_set_affinity = ioapic_set_affinity, 1878 + .irq_retrigger = irq_chip_retrigger_hierarchy, 1878 1879 .flags = IRQCHIP_SKIP_SET_WAKE, 1879 1880 }; 1880 1881 ··· 1887 1886 .irq_ack = irq_chip_ack_parent, 1888 1887 .irq_eoi = ioapic_ir_ack_level, 1889 1888 .irq_set_affinity = ioapic_set_affinity, 1889 + .irq_retrigger = irq_chip_retrigger_hierarchy, 1890 1890 .flags = IRQCHIP_SKIP_SET_WAKE, 1891 1891 }; 1892 1892