xemu/hw/ppc
Michael Roth 788d2599de spapr_pci: fix multifunction hotplug
Since 3f1e147, QEMU has adopted a convention of supporting function
hotplug by deferring hotplug events until func 0 is hotplugged.
This is likely how management tools like libvirt would expose
such support going forward.

Since sPAPR guests rely on per-func events rather than
slot-based, our protocol has been to hotplug func 0 *first* to
avoid cases where devices appear within guests without func 0
present to avoid undefined behavior.

To remain compatible with new convention, defer hotplug in a
similar manner, but then generate events in 0-first order as we
did in the past. Once func 0 present, fail any attempts to plug
additional functions (as we do with PCIe).

For unplug, defer unplug operations in a similar manner, but
generate unplug events such that function 0 is removed last in guest.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-03-16 09:55:05 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
e500.h PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
e500plat.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mac_newworld.c loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
mac_oldworld.c loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
mac.h cuda: port SET_DEVICE_LIST command to new framework 2016-02-17 09:59:30 +11:00
Makefile.objs ppc/spapr: Implement H_RANDOM hypercall in QEMU 2015-09-23 10:51:11 +10:00
mpc8544_guts.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mpc8544ds.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc4xx_devs.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc4xx_pci.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405_boards.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405_uc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc440_bamboo.c loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
ppc_booke.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppce500_spin.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
prep.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_drc.c qapi: Drop unused error argument for list and implicit struct 2016-02-08 17:29:57 +01:00
spapr_events.c xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
spapr_hcall.c hw/ppc/spapr: Implement the h_page_init hypercall 2016-02-25 13:58:44 +11:00
spapr_iommu.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_pci_vfio.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_pci.c spapr_pci: fix multifunction hotplug 2016-03-16 09:55:05 +11:00
spapr_rng.c spapr_rng: disable hotpluggability 2016-02-28 16:19:02 +11:00
spapr_rtas.c hw/ppc/spapr: Halt CPU when powering off via RTAS call 2016-02-18 11:08:43 +11:00
spapr_rtc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_vio.c xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
spapr.c msi_supported -> msi_nonbroken 2016-03-11 16:45:21 +02:00
virtex_ml507.c loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00