qemu/hw
David Gibson 568f0690fd pci: Replace pci_find_domain() with more general pci_root_bus_path()
pci_find_domain() is used in a number of places where we want an id for a
whole PCI domain (i.e. the subtree under a PCI root bus).  The trouble is
that many platforms may support multiple independent host bridges with no
hardware supplied notion of domain number.

This patch, therefore, replaces calls to pci_find_domain() with calls to
a new pci_root_bus_path() returning a string.  The new call is implemented
in terms of a new callback in the host bridge class, so it can be defined
in some way that's well defined for the platform.  When no callback is
available we fall back on the qbus name.

Most current uses of pci_find_domain() are for error or informational
messages, so the change in identifiers should be harmless.  The exception
is pci_get_dev_path(), whose results form part of migration streams.  To
maintain compatibility with old migration streams, the PIIX PCI host is
altered to always supply "0000" for this path, which matches the old domain
number (since the code didn't actually support domains other than 0).

For the pseries (spapr) PCI bridge we use a different platform-unique
identifier (pseries machines can routinely have dozens of PCI host
bridges).  Theoretically that breaks migration streams, but given that we
don't yet have migration support for pseries, it doesn't matter.

Any other machines that have working migration support including PCI
devices will need to be updated to maintain migration stream compatibility.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2013-07-07 23:10:57 +03:00
..
9pfs hw/9pfs: Be robust against paths without FS_IOC_GETVERSION 2013-05-28 15:23:12 +05:30
acpi piix: fix some printf errors when debug is enabled 2013-06-14 14:38:45 +04:00
alpha cpu: Turn cpu_unassigned_access() into a CPUState hook 2013-06-28 13:25:13 +02:00
arm arm/boot: Free dtb blob memory after use 2013-06-25 18:34:13 +01:00
audio Merge branch 'realize-isa.v2' of git://github.com/afaerber/qemu-cpu 2013-06-15 10:53:44 +00:00
block nand: Don't inherit from Sysbus 2013-06-25 19:15:46 +01:00
bt sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char cadence_uart: Handle backend tx errors 2013-06-24 16:26:52 +02:00
core memory: make section size a 128-bit integer 2013-06-20 16:32:47 +02:00
cpu target-i386: Move APIC to ICC bus 2013-05-01 13:06:07 +02:00
cris hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
display Merge remote-tracking branch 'spice/spice.v71' into staging 2013-06-24 14:33:09 -05:00
dma dma: eliminate DMAContext 2013-06-20 16:39:52 +02:00
gpio Remove unneeded type casts 2013-04-19 11:36:33 +02:00
i2c qdev: Drop FROM_QBUS() macro 2013-06-07 14:55:33 +02:00
i386 pci: Abolish pci_find_root_bus() 2013-07-07 23:10:07 +03:00
ide cmd646: fix build when DEBUG_IDE is enabled. 2013-06-28 15:46:38 +02:00
input isa: Use realizefn for ISADevice 2013-06-07 12:14:45 +02:00
intc intc/openpic_kvm: Fix QOM and build issues 2013-07-01 01:11:15 +02:00
isa isa: QOM'ify ISADevice 2013-06-07 14:55:33 +02:00
lm32 qdev: Drop taddr properties 2013-04-20 17:54:52 +00:00
m68k hw: move char devices to hw/char/, configure via default-configs/ 2013-04-08 18:13:14 +02:00
microblaze microblaze/petalogix_s3adsp1800_mmu: Fix UART IRQ 2013-06-18 09:44:59 +02:00
mips cpu: Change cpu_exit() argument to CPUState 2013-06-28 13:25:12 +02:00
misc pvpanic: fix fwcfg for big endian hosts 2013-07-04 10:42:51 +03:00
moxie Trivial grammar and spelling fixes 2013-05-01 20:55:21 +04:00
net e1000: cleanup process_tx_desc 2013-07-04 10:40:56 +03:00
nvram spapr-rtas: add CPU argument to RTAS calls 2013-07-01 01:11:16 +02:00
openrisc hw: move headers to include/ 2013-04-08 18:13:10 +02:00
pci pci: Replace pci_find_domain() with more general pci_root_bus_path() 2013-07-07 23:10:57 +03:00
pci-bridge dec.c - move to pci-bridge 2013-06-02 18:13:37 +03:00
pci-host pci: Replace pci_find_domain() with more general pci_root_bus_path() 2013-07-07 23:10:57 +03:00
ppc pci: Replace pci_find_domain() with more general pci_root_bus_path() 2013-07-07 23:10:57 +03:00
s390x virtio-ccw: fix build breakage on windows 2013-07-01 11:00:20 +02:00
scsi dma: eliminate DMAContext 2013-06-20 16:39:52 +02:00
sd sd: pass bool parameter for sd_init 2013-06-21 22:52:50 +04:00
sh4 arm: fix location of some include files 2013-04-15 15:16:01 +02:00
sparc refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
sparc64 isa: QOM'ify ISABus 2013-06-07 14:55:25 +02:00
ssi qdev: Drop FROM_QBUS() macro 2013-06-07 14:55:33 +02:00
timer i.MX: Rework functions/types name and use new style initialization 2013-06-25 18:34:13 +01:00
tpm Move TPM passthrough specific command line options to backend structure 2013-04-23 10:40:40 -05:00
unicore32 console: add device link to QemuConsoles 2013-04-25 14:45:46 -05:00
usb usb: add serial bus property 2013-06-24 08:41:07 +02:00
virtio memory: make section size a 128-bit integer 2013-06-20 16:32:47 +02:00
watchdog wdt_i6300esb: fix vmstate versioning 2013-06-18 13:44:37 -05:00
xen memory: make section size a 128-bit integer 2013-06-20 16:32:47 +02:00
xtensa sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
Makefile.objs virtio: simplify Makefile conditionals 2013-04-19 16:18:11 +02:00