xemu/hw/intc
Greg Kurz 0990ce6a2e ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip
SpaprInterruptControllerClass and PnvChipClass have an intc_create() method
that calls the appropriate routine, ie. icp_create() or xive_tctx_create(),
to establish the link between the VCPU and the presenter component of the
interrupt controller during realize.

There aren't any symmetrical call to be called when the VCPU gets unrealized
though. It is assumed that object_unparent() is the only thing to do.

This is questionable because the parenting logic around the CPU and
presenter objects is really an implementation detail of the interrupt
controller. It shouldn't be open-coded in the machine code.

Fix this by adding an intc_destroy() method that undoes what was done in
intc_create(). Also NULLify the presenter pointers to avoid having
stale pointers around. This will allow to reliably check if a vCPU has
a valid presenter.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <157192724208.3146912.7254684777515287626.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
2019-11-18 11:49:11 +01:00
..
Kconfig kconfig: add CONFIG_MSI_NONBROKEN 2019-03-18 09:39:57 +01:00
Makefile.objs hw/intc: Only build the xlnx-iomod-intc device for the MicroBlaze PMU 2019-08-19 21:28:25 +02:00
allwinner-a10-pic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
apic.c hw/intc/apic: reject pic ints if isa_pic == NULL 2019-10-22 09:39:54 +02:00
apic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gic.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gic_kvm.c intc/arm_gic: Support IRQ injection for more than 256 vpus 2019-10-15 18:09:02 +01:00
arm_gicv2m.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gicv3.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
arm_gicv3_common.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gicv3_cpuif.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
arm_gicv3_dist.c hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1 2019-06-17 15:13:19 +01:00
arm_gicv3_its_common.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
arm_gicv3_its_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_redist.c hw/intc/arm_gicv3: Fix decoding of ID register range 2019-06-17 15:13:19 +01:00
armv7m_nvic.c target/arm: Rebuild hflags for M-profile NVIC 2019-10-24 17:16:28 +01:00
aspeed_vic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2835_ic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2836_control.c hw/arm/bcm2835_peripherals: Improve logging 2019-10-15 18:09:05 +01:00
etraxfs_pic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_combiner.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
gic_internal.h hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
gicv3_internal.h target-arm: Add GICv3CPUState in CPUARMState struct 2017-02-28 17:10:00 +00:00
grlib_irqmp.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
heathrow_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
i8259.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
i8259_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
imx_avic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx_gpcv2.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
intc.c intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
ioapic.c hw/i386: split PCMachineState deriving X86MachineState from it 2019-10-22 09:39:50 +02:00
ioapic_common.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
lm32_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
mips_gic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nios2_iic.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
omap_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ompic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic_kvm.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pl190.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
pnv_xive.c ppc/pnv: Improve trigger data definition 2019-10-24 09:36:55 +11:00
pnv_xive_regs.h ppc/pnv: add a XIVE interrupt controller model for POWER9 2019-03-12 14:33:04 +11:00
puv3_intc.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
realview_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
s390_flic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
s390_flic_kvm.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
sh_intc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
slavio_intctl.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_xive.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
spapr_xive_kvm.c spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines 2019-10-24 09:36:55 +11:00
trace-events xics: Rename misleading ics_simple_*() functions 2019-10-04 19:08:22 +10:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
xics_kvm.c spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines 2019-10-24 09:36:55 +11:00
xics_pnv.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
xics_spapr.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
xilinx_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xive.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
xlnx-pmu-iomod-intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xlnx-zynqmp-ipi.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00