kernel_optimize_test/drivers/irqchip
Ashok Kumar 004fa08d7a irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1
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")
Cc: stable@vger.kernel.org
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>
2016-02-11 16:01:28 +00: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-aic5.c irqchip/atmel-aic5: Simplify base chip selection 2015-09-22 16:04:43 +02:00
irq-atmel-aic-common.c irqchip/atmel-aic: Fix wrong bit operation for IRQ priority 2016-01-27 12:54:33 +01:00
irq-atmel-aic-common.h irqchip: atmel-aic: Add irq fixup for RTT block 2014-11-09 04:36:38 +00:00
irq-atmel-aic.c irqchip: Appropriate __init annotation for const data 2015-07-27 08:09:38 +02:00
irq-bcm2835.c irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
irq-bcm2836.c irqchip/bcm2836: Make code more readable 2015-12-29 11:40:46 +01:00
irq-bcm7038-l1.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-bcm7120-l2.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-brcmstb-l2.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-clps711x.c irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
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 irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-dw-apb-ictl.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
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-realview.c irqchip/gic: Support RealView variant setup 2015-12-16 15:30:50 +00:00
irq-gic-v2m.c irqchip/gicv2m: Miscellaneous fixes for v2m resources and SPI ranges 2015-12-29 11:58:53 +01: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-02-11 16:01:28 +00: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: Only set the EOImodeNS bit for the root controller 2016-02-11 10:20:02 +00: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 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
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 irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-keystone.c irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
irq-mbigen.c irqchip/mbigen: Implement the mbigen irq chip operation functions 2015-12-18 11:47:13 +00:00
irq-metag-ext.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-metag.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-mips-cpu.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
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 irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
irq-moxart.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
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-01-29 12:15:50 +01: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-01-06 11:35:13 +01:00
irq-or1k-pic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-orion.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
irq-pic32-evic.c IRQCHIP: irq-pic32-evic: Add support for PIC32 interrupt controller 2016-01-24 02:52:20 +01:00
irq-renesas-h8s.c irqchip: renesas-h8s: Replace ctrl_outw/ctrl_inw with writew/readw 2016-01-20 22:44:13 +09:00
irq-renesas-h8300h.c h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl] 2015-12-15 10:12:03 +01:00
irq-renesas-intc-irqpin.c irqchip/renesas-intc-irqpin: Improve clock error handling and reporting 2015-11-24 16:54:19 +00: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 irqchip/s3c24xx: Mark init_eint as __maybe_unused 2016-01-26 16:00:14 +01:00
irq-sa11x0.c ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
irq-sirfsoc.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-st.c irqchip: st: Supply new driver for STi based devices 2015-03-03 19:48:53 +00:00
irq-sun4i.c irqchip/sun4i: Fix compilation outside of arch/arm 2016-02-02 15:46:40 +01:00
irq-sunxi-nmi.c irqchip/sunxi-nmi: Support sun9i A80 NMI controller 2015-12-03 12:54:11 +00:00
irq-tb10x.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
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-ts4800.c irqchip/ts4800: Add TS-4800 interrupt controller 2015-12-29 11:58:53 +01: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 irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
irq-vt8500.c irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00
irq-xtensa-mx.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-xtensa-pic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-zevio.c irqchip/zevio: Use irq_data_get_chip_type() helper 2015-12-30 18:29:02 +01:00
irqchip.c irqchip / GIC: Convert the GIC driver to ACPI probing 2015-10-01 02:18:38 +02:00
Kconfig Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-01-31 14:48:58 -08:00
Makefile Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
spear-shirq.c irqchip: Kill off set_irq_flags usage 2015-09-16 16:53:38 +02:00