linux/include/linux/irqchip
Marc Zyngier f3a059219b irqchip/gic-v4.1: Ensure mutual exclusion between vPE affinity change and RD access
Before GICv4.1, all operations would be serialized with the affinity
changes by virtue of using the same ITS command queue. With v4.1, things
change, as invalidations (and a number of other operations) are issued
using the redistributor MMIO frame.

We must thus make sure that these redistributor accesses cannot race
against aginst the affinity change, or we may end-up talking to the
wrong redistributor.

To ensure this, we expand the irq_to_cpuid() helper to take a spinlock
when the LPI is mapped to a vLPI (a new per-VPE lock) on each operation
that requires mutual exclusion.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20200304203330.4967-4-maz@kernel.org
2020-03-19 11:21:58 +00:00
..
arm-gic-common.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-08 11:01:13 -07:00
arm-gic-v3.h irqchip/gic-v3: Use SGIs without active state if offered 2020-03-19 11:11:21 +00:00
arm-gic-v4.h irqchip/gic-v4.1: Ensure mutual exclusion between vPE affinity change and RD access 2020-03-19 11:21:58 +00:00
arm-gic.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-08 11:01:13 -07:00
arm-vic.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
chained_irq.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
irq-bcm2836.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
irq-davinci-aintc.h ARM: davinci: aintc: use the new config structure 2019-02-19 19:55:17 +05:30
irq-davinci-cp-intc.h ARM: davinci: cp-intc: use the new-style config structure 2019-02-19 20:03:34 +05:30
irq-ixp4xx.h irqchip: Add driver for IXP4xx 2019-04-19 20:37:50 +02:00
irq-madera.h irqchip: Add driver for Cirrus Logic Madera codecs 2018-12-18 14:06:56 +00:00
irq-omap-intc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 396 2019-06-05 17:37:12 +02:00
irq-partition-percpu.h irqchip: Add include guard to irq-partition-percpu.h 2019-08-20 10:35:46 +01:00
irq-sa11x0.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mmp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mxs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
versatile-fpga.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xtensa-mx.h
xtensa-pic.h