linux_dsm_epyc7002/include/linux/irqchip
Marc Zyngier 0b04758b00 irqchip/gic-v3: Use SGIs without active state if offered
To allow the direct injection of SGIs into a guest, the GICv4.1
architecture has to sacrifice the Active state so that SGIs look
a lot like LPIs (they are injected by the same mechanism).

In order not to break existing software, the architecture gives
offers guests OSs the choice: SGIs with or without an active
state. It is the hypervisors duty to honor the guest's choice.

For this, the architecture offers a discovery bit indicating whether
the GIC supports GICv4.1 SGIs (GICD_TYPER2.nASSGIcap), and another
bit indicating whether the guest wants Active-less SGIs or not
(controlled by GICD_CTLR.nASSGIreq).

A hypervisor not supporting GICv4.1 SGIs would leave nASSGIcap
clear, and a guest not knowing about GICv4.1 SGIs (or definitely
wanting an Active state) would leave nASSGIreq clear (both being
thankfully backward compatible with older revisions of the GIC).

Since Linux is perfectly happy without an active state on SGIs,
inform the hypervisor that we'll use that if offered.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20200304203330.4967-2-maz@kernel.org
2020-03-19 11:11:21 +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: Add VPE residency callback 2020-01-22 14:22:20 +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