linux-stable/drivers/irqchip
Marc Zyngier fa1c518dfe irqchip/gic: Atomically update affinity
commit 005c34ae4b upstream.

The GIC driver uses a RMW sequence to update the affinity, and
relies on the gic_lock_irqsave/gic_unlock_irqrestore sequences
to update it atomically.

But these sequences only expand into anything meaningful if
the BL_SWITCHER option is selected, which almost never happens.

It also turns out that using a RMW and locks is just as silly,
as the GIC distributor supports byte accesses for the GICD_TARGETRn
registers, which when used make the update atomic by definition.

Drop the terminally broken code and replace it by a byte write.

Fixes: 04c8b0f82c ("irqchip/gic: Make locking a BL_SWITCHER only feature")
Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:36:32 +02:00
..
alphascale_asm9260-icoll.h
exynos-combiner.c
irq-alpine-msi.c
irq-armada-370-xp.c irqchip updates for 4.14 2017-08-31 20:12:51 +02:00
irq-aspeed-i2c-ic.c
irq-aspeed-vic.c
irq-ath79-cpu.c
irq-ath79-misc.c Revert "MIPS: perf: ath79: Fix perfcount IRQ assignment" 2019-06-11 12:21:49 +02:00
irq-atmel-aic-common.c
irq-atmel-aic-common.h
irq-atmel-aic.c
irq-atmel-aic5.c
irq-bcm2835.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-bcm2836.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-bcm6345-l1.c irqchip/bcm-6345-l1: Report that effective affinity is a single target 2017-08-18 10:54:41 +02:00
irq-bcm7038-l1.c irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary 2020-01-04 13:59:42 +01:00
irq-bcm7120-l2.c irqchip/irq-bcm7120-l2: Use correct I/O accessors for irq_fwd_mask 2017-08-31 15:32:18 +01:00
irq-brcmstb-l2.c
irq-clps711x.c
irq-crossbar.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-digicolor.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-dw-apb-ictl.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-eznps.c
irq-ftintc010.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-gic-common.c irqchip/gic: Take lock when updating irq type 2018-04-24 09:36:29 +02:00
irq-gic-common.h
irq-gic-pm.c
irq-gic-realview.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-gic-v2m.c
irq-gic-v3-its-pci-msi.c irqchip/gic-v3: Ignore disabled ITS nodes 2018-04-26 11:02:20 +02:00
irq-gic-v3-its-platform-msi.c irqchip/gic-v3: Ignore disabled ITS nodes 2018-04-26 11:02:20 +02:00
irq-gic-v3-its.c irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency 2020-04-24 08:00:29 +02:00
irq-gic-v3.c irqchip/gic-v3: Only provision redistributors that are enabled in ACPI 2020-02-28 16:36:07 +01:00
irq-gic-v4.c irqchip/gic-v4: Fix building with ancient gcc 2017-09-19 19:43:45 +01:00
irq-gic.c irqchip/gic: Atomically update affinity 2020-07-09 09:36:32 +02:00
irq-hip04.c irqchip/hip04: Report that effective affinity is a single target 2017-08-18 10:54:42 +02:00
irq-i8259.c
irq-imgpdc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-imx-gpcv2.c irqchip/irq-imx-gpcv2: Forward irq type to parent 2019-08-25 10:50:11 +02:00
irq-ingenic.c irqchip: ingenic: Error out if IRQ domain creation failed 2020-01-04 13:59:42 +01:00
irq-jcore-aic.c
irq-keystone.c
irq-lpc32xx.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-ls-scfg-msi.c irqchip/ls-scfg-msi: Map MSIs in the iommu 2018-08-03 07:50:24 +02:00
irq-mbigen.c irqchip/mbigen: Free msi_desc on device teardown 2020-04-24 08:01:01 +02:00
irq-metag-ext.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-metag.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-mips-cpu.c MIPS: Unify checks for sibling CPUs 2017-08-30 00:57:27 +02:00
irq-mips-gic.c irqchip/mips-gic: Avoid spuriously handling masked interrupts 2018-02-28 10:19:41 +01:00
irq-mmp.c irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable 2019-03-13 14:03:20 -07:00
irq-mtk-cirq.c
irq-mtk-sysirq.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-mvebu-gicp.c irqchip/irq-mvebu-gicp: Add missing spin_lock init 2017-11-01 00:35:18 +01:00
irq-mvebu-gicp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Fix wrong private data retrieval 2019-11-24 08:22:56 +01:00
irq-mvebu-odmi.c
irq-mvebu-pic.c
irq-mxs.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-nvic.c
irq-omap-intc.c
irq-or1k-pic.c
irq-orion.c
irq-partition-percpu.c
irq-pic32-evic.c
irq-renesas-h8s.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-renesas-h8300h.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq-renesas-intc-irqpin.c
irq-renesas-irqc.c
irq-s3c24xx.c
irq-sa11x0.c
irq-sirfsoc.c
irq-st.c
irq-stm32-exti.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-sun4i.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-sunxi-nmi.c
irq-tango.c irqchip/tango: Use irq_gc_mask_disable_and_ack_set 2017-10-13 16:31:05 +01:00
irq-tb10x.c
irq-tegra.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-ts4800.c
irq-uniphier-aidet.c irqchip: Add UniPhier AIDET irqchip driver 2017-08-23 10:08:44 +01:00
irq-versatile-fpga.c irqchip/versatile-fpga: Apply clear-mask earlier 2020-04-24 08:00:37 +02:00
irq-vf610-mscm-ir.c
irq-vic.c
irq-vt8500.c
irq-xilinx-intc.c irqchip: Convert to using %pOF instead of full_name 2017-08-23 10:09:28 +01:00
irq-xtensa-mx.c irqchip/xtensa-mx: Report that effective affinity is a single target 2017-08-18 10:54:43 +02:00
irq-xtensa-pic.c
irq-zevio.c
irqchip.c
Kconfig irqchip updates for 4.14 2017-08-31 20:12:51 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qcom-irq-combiner.c irqchip/qcom: Fix check for spurious interrupts 2018-05-09 09:51:56 +02:00
spear-shirq.c