qemu-e2k/hw/ppc
Greg Kurz ef28b98d58 spapr_pci: add PHB unrealize
To support PHB hotplug we need to clean up lingering references,
memory, child properties, etc. prior to the PHB object being
finalized. Generally this will be called as a result of calling
object_unparent() on the PHB object, which in turn would normally
be called as the result of an unplug() operation.

When the PHB is finalized, child objects will be unparented in
turn, and finalized if the PHB was the only reference holder. so
we don't bother to explicitly unparent child objects of the PHB,
with the notable exception of DRCs. This is needed to avoid a QEMU
crash when unplugging a PHB and resetting the machine before the
guest could handle the event. The DRCs are removed from the QOM tree
by  pci_unregister_root_bus() and we must make sure we're not leaving
stale aliases under the global /dr-connector path.

The formula that gives the number of DMA windows is moved to an
inline function in the hw/pci-host/spapr.h header because it
will have other users.

The unrealize function is able to cope with partially realized PHBs.
It is hence used to implement proper rollback on the realize error
path.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <155059669881.1466090.13515030705986041517.stgit@bahia.lab.toulouse-stg.fr.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-02-26 09:21:25 +11:00
..
e500-ccsr.h
e500.c
e500.h
e500plat.c
fdt.c
mac_newworld.c mac_newworld: change default NIC to sungem for mac99 machine 2019-02-17 21:54:02 +11:00
mac_oldworld.c
mac.h
Makefile.objs hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* 2019-02-05 16:50:20 +01:00
mpc8544_guts.c
mpc8544ds.c
pnv_bmc.c
pnv_core.c
pnv_lpc.c
pnv_occ.c
pnv_psi.c
pnv_xscom.c
pnv.c
ppc4xx_devs.c
ppc4xx_pci.c
ppc405_boards.c
ppc405_uc.c
ppc405.h
ppc440_bamboo.c
ppc440_pcix.c
ppc440_uc.c
ppc440.h
ppc_booke.c
ppc.c target/ppc: Add POWER9 external interrupt model 2019-02-26 09:21:24 +11:00
ppce500_spin.c
prep_systemio.c
prep.c hw/ppc/prep: Drop useless inclusion of "hw/i386/pc.h" 2019-02-17 21:54:02 +11:00
rs6000_mc.c
sam460ex.c
spapr_caps.c
spapr_cpu_core.c
spapr_drc.c spapr/drc: Drop spapr_drc_attach() fdt argument 2019-02-26 09:21:25 +11:00
spapr_events.c spapr: Rename xics to intc in interrupt controller agnostic code 2019-02-17 21:54:02 +11:00
spapr_hcall.c target/ppc: Rename PATB/PATBE -> PATE 2019-02-26 09:21:25 +11:00
spapr_iommu.c
spapr_irq.c spapr_irq: Expose the phandle of the interrupt controller 2019-02-26 09:21:25 +11:00
spapr_ovec.c spapr: support memory unplug for qtest 2019-02-26 09:21:25 +11:00
spapr_pci_vfio.c
spapr_pci.c spapr_pci: add PHB unrealize 2019-02-26 09:21:25 +11:00
spapr_rng.c
spapr_rtas_ddw.c
spapr_rtas.c target/ppc/spapr: Set LPCR:HR when using Radix mode 2019-02-26 09:21:25 +11:00
spapr_rtc.c qapi: move RTC_CHANGE to the target schema 2019-02-18 14:44:05 +01:00
spapr_vio.c spapr: Rename xics to intc in interrupt controller agnostic code 2019-02-17 21:54:02 +11:00
spapr.c spapr/drc: Drop spapr_drc_attach() fdt argument 2019-02-26 09:21:25 +11:00
trace-events
virtex_ml507.c