qemu-e2k/hw/intc
Peter Maydell 10337638bb hw/intc/arm_gicv3_cpuif: Split "update vIRQ/vFIQ" from gicv3_cpuif_virt_update()
The function gicv3_cpuif_virt_update() currently sets all of vIRQ,
vFIQ and the maintenance interrupt.  This implies that it has to be
used quite carefully -- as the comment notes, setting the maintenance
interrupt will typically cause the GIC code to be re-entered
recursively.  For handling vLPIs, we need the redistributor to be
able to tell the cpuif to update the vIRQ and vFIQ lines when the
highest priority pending vLPI changes.  Since that change can't cause
the maintenance interrupt state to change, we can pull the "update
vIRQ/vFIQ" parts of gicv3_cpuif_virt_update() out into a separate
function, which the redistributor can then call without having to
worry about the reentrancy issue.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220408141550.1271295-25-peter.maydell@linaro.org
2022-04-22 14:44:52 +01:00
..
allwinner-a10-pic.c
apic_common.c
apic.c
arm_gic_common.c
arm_gic_kvm.c
arm_gic.c hw/intc/arm_gic: Allow reset of the running priority 2022-01-20 11:47:52 +00:00
arm_gicv2m.c
arm_gicv3_common.c hw/intc/arm_gicv3: Implement new GICv4 redistributor registers 2022-04-22 14:44:52 +01:00
arm_gicv3_cpuif_common.c
arm_gicv3_cpuif.c hw/intc/arm_gicv3_cpuif: Split "update vIRQ/vFIQ" from gicv3_cpuif_virt_update() 2022-04-22 14:44:52 +01:00
arm_gicv3_dist.c hw/intc/arm_gicv3: Report correct PIDR0 values for ID registers 2022-04-22 09:19:24 +01:00
arm_gicv3_its_common.c
arm_gicv3_its_kvm.c hw/intc/arm_gicv3: Keep pointers to every connected ITS 2022-04-22 09:24:44 +01:00
arm_gicv3_its.c hw/intc/arm_gicv3_its: Implement VINVALL 2022-04-22 14:44:52 +01:00
arm_gicv3_kvm.c
arm_gicv3_redist.c hw/intc/arm_gicv3: Implement new GICv4 redistributor registers 2022-04-22 14:44:52 +01:00
arm_gicv3.c hw/intc/arm_gicv3: Specify valid and impl in MemoryRegionOps 2022-03-07 13:16:50 +00:00
armv7m_nvic.c
aspeed_vic.c
bcm2835_ic.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
bcm2836_control.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
etraxfs_pic.c
exynos4210_combiner.c hw/arm/exynos4210: Put combiners into state struct 2022-04-21 11:37:04 +01:00
exynos4210_gic.c Misc cleanups 2022-04-21 09:27:54 -07:00
gic_internal.h
gicv3_internal.h hw/intc/arm_gicv3_cpuif: Split "update vIRQ/vFIQ" from gicv3_cpuif_virt_update() 2022-04-22 14:44:52 +01:00
goldfish_pic.c
grlib_irqmp.c
heathrow_pic.c
i8259_common.c intc: Unexport InterruptStatsProviderClass-related functions 2022-01-27 12:08:50 +01:00
i8259.c
imx_avic.c
imx_gpcv2.c
intc.c
ioapic_common.c intc: Unexport InterruptStatsProviderClass-related functions 2022-01-27 12:08:50 +01:00
ioapic.c
Kconfig hw/intc: Rename CONFIG_ARM_GIC_TCG into CONFIG_ARM_GICV3_TCG 2022-03-18 10:55:15 +00:00
loongson_liointc.c
m68k_irqc.c
meson.build hw/intc: Rename CONFIG_ARM_GIC_TCG into CONFIG_ARM_GICV3_TCG 2022-03-18 10:55:15 +00:00
mips_gic.c
omap_intc.c
ompic.c
openpic_kvm.c
openpic.c
pl190.c
pnv_xive2_regs.h pnv/xive2: Add support for automatic save&restore 2022-03-02 06:51:39 +01:00
pnv_xive2.c pnv/xive2: Add support for 8bits thread id 2022-03-02 06:51:39 +01:00
pnv_xive_regs.h
pnv_xive.c ppc/xive: Add support for PQ state bits offload 2022-03-02 06:51:39 +01:00
ppc-uic.c
realview_gic.c
riscv_aclint.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
riscv_aplic.c hw/intc: Add RISC-V AIA APLIC device emulation 2022-02-16 12:24:19 +10:00
riscv_imsic.c hw/intc: Add RISC-V AIA IMSIC device emulation 2022-03-03 13:14:50 +10:00
rx_icu.c
s390_flic_kvm.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
s390_flic.c
sh_intc.c
sifive_plic.c target/riscv: Support start kernel directly by KVM 2022-01-21 15:52:56 +10:00
slavio_intctl.c
spapr_xive_kvm.c
spapr_xive.c ppc/xive: Add support for PQ state bits offload 2022-03-02 06:51:39 +01:00
trace-events hw/intc/arm_gicv3_cpuif: Split "update vIRQ/vFIQ" from gicv3_cpuif_virt_update() 2022-04-22 14:44:52 +01:00
trace.h
vgic_common.h
xics_kvm.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
xics_pnv.c
xics_spapr.c
xics.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
xilinx_intc.c
xive2.c ppc/xive2: Make type Xive2EndSource not user creatable 2022-03-14 15:57:17 +01:00
xive.c ppc/pnv: Add support for PQ offload on PHB5 2022-03-02 06:51:39 +01:00
xlnx-pmu-iomod-intc.c
xlnx-zynqmp-ipi.c