android_kernel_samsung_univ.../drivers/irqchip
Ashok Kumar b966c761af irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1
commit 004fa08d7aba2a13974446bf212a48c0b3b0d9fd upstream.

When the GIC is using EOImode==1, the EOI is done immediately,
leaving the deactivation to be performed when the EOI was
previously done.

Unfortunately, the ITS is not aware of the EOImode at all, and
blindly EOIs the interrupt again. On most systems, this is ignored
(despite being a programming error), but some others do raise a
SError exception as there is no priority drop to perform for this
interrupt.

The fix is to stop trying to be clever, and always call into the
underlying GIC to perform the right access, irrespective of the
more we're in.

[Marc: Reworked commit message]

Fixes: 0b996fd359 ("irqchip/GICv3: Convert to EOImode == 1")
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ashok Kumar <ashoks@broadcom.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-03-03 15:07:14 -08:00
..
alphascale_asm9260-icoll.h irqchip/mxs: Add Alphascale ASM9260 support 2015-10-14 09:37:47 +02:00
exynos-combiner.c irqdomain: Use irq_domain_get_of_node() instead of direct field access 2015-10-13 19:01:23 +02:00
irq-armada-370-xp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-11-04 09:41:05 -08:00
irq-atmel-aic-common.c irqchip/atmel-aic: Fix wrong bit operation for IRQ priority 2016-03-03 15:07:14 -08:00
irq-atmel-aic-common.h
irq-atmel-aic.c
irq-atmel-aic5.c
irq-bcm2835.c
irq-bcm2836.c
irq-bcm7038-l1.c
irq-bcm7120-l2.c
irq-brcmstb-l2.c
irq-clps711x.c
irq-crossbar.c irqchip: Convert all alloc/xlate users from of_node to fwnode 2015-10-13 19:01:23 +02:00
irq-digicolor.c
irq-dw-apb-ictl.c
irq-gic-common.c irqchip/gic: Make sure all interrupts are deactivated at boot 2015-11-17 14:25:58 +01:00
irq-gic-common.h irqchip/gicv3-its: Add HW revision detection and configuration 2015-09-29 10:10:53 +02:00
irq-gic-v2m.c irqchip/gic-v2m: Add support for multiple MSI frames 2015-10-15 10:18:48 +02:00
irq-gic-v3-its-pci-msi.c irqchip/gic-v3-its: Add handling of PCI requester id. 2015-10-16 13:07:13 +01:00
irq-gic-v3-its-platform-msi.c irqchip/gic-v3-its: Parse new version of msi-parent property 2015-10-16 13:07:15 +01:00
irq-gic-v3-its.c irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1 2016-03-03 15:07:14 -08:00
irq-gic-v3.c irqchip/gic-v3: Fix translation of LPIs after conversion to irq_fwspec 2015-10-15 10:18:48 +02:00
irq-gic.c irqchip/gic: Add save/restore of the active state 2015-11-17 14:25:59 +01:00
irq-hip04.c irqdomain: Use irq_domain_get_of_node() instead of direct field access 2015-10-13 19:01:23 +02:00
irq-i8259.c irqchip/i8259: Convert to use irq_set_chained_handler_and_data 2015-10-01 16:32:54 +02:00
irq-imgpdc.c
irq-imx-gpcv2.c irqchip: Convert all alloc/xlate users from of_node to fwnode 2015-10-13 19:01:23 +02:00
irq-ingenic.c
irq-keystone.c
irq-metag-ext.c
irq-metag.c
irq-mips-cpu.c
irq-mips-gic.c irqchip: irq-mips-gic: Provide function to map GIC user section 2015-11-11 08:36:38 +01:00
irq-mmp.c
irq-moxart.c
irq-mtk-sysirq.c irqchip: Convert all alloc/xlate users from of_node to fwnode 2015-10-13 19:01:23 +02:00
irq-mxs.c irqchip/mxs: Add missing set_handle_irq() 2016-03-03 15:07:14 -08:00
irq-nvic.c irqchip: Convert all alloc/xlate users from of_node to fwnode 2015-10-13 19:01:23 +02:00
irq-omap-intc.c irqchip/omap-intc: Add support for spurious irq handling 2016-03-03 15:07:14 -08:00
irq-or1k-pic.c
irq-orion.c
irq-renesas-h8s.c
irq-renesas-h8300h.c
irq-renesas-intc-irqpin.c irqchip/renesas-intc-irqpin: r8a7778 IRLM setup support 2015-09-30 21:02:22 +02:00
irq-renesas-irqc.c irqchip/renesas-irqc: Move over to nested generic chip 2015-09-29 20:41:00 +02:00
irq-s3c24xx.c irqdomain: Use irq_domain_get_of_node() instead of direct field access 2015-10-13 19:01:23 +02:00
irq-sa11x0.c
irq-sirfsoc.c
irq-st.c
irq-sun4i.c
irq-sunxi-nmi.c irqchip/sunxi-nmi: Switch to of_io_request_and_map() from of_iomap() 2015-10-09 22:47:28 +02:00
irq-tb10x.c
irq-tegra.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-03 14:40:01 -08:00
irq-versatile-fpga.c irqchip/versatile-fpga: Fix PCI IRQ mapping on Versatile PB 2015-12-01 22:50:16 +01:00
irq-vf610-mscm-ir.c irqchip: Convert all alloc/xlate users from of_node to fwnode 2015-10-13 19:01:23 +02:00
irq-vic.c
irq-vt8500.c
irq-xtensa-mx.c
irq-xtensa-pic.c
irq-zevio.c
irqchip.c irqchip / GIC: Convert the GIC driver to ACPI probing 2015-10-01 02:18:38 +02:00
Kconfig irqchip/mxs: Add Alphascale ASM9260 support 2015-10-14 09:37:47 +02:00
Makefile irqchip/mxs: Add Alphascale ASM9260 support 2015-10-14 09:37:47 +02:00
spear-shirq.c