qemu: Unify address assignment for virt guests

The rules are the same for all virt guests, regardless of the
architecture.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Andrea Bolognani 2018-10-15 16:20:11 +02:00
parent 20011d01d9
commit 5ee5ebf453

View File

@ -460,19 +460,23 @@ qemuDomainHasVirtioMMIODevices(virDomainDefPtr def)
static void
qemuDomainAssignARMVirtioMMIOAddresses(virDomainDefPtr def,
virQEMUCapsPtr qemuCaps)
qemuDomainAssignVirtioMMIOAddresses(virDomainDefPtr def,
virQEMUCapsPtr qemuCaps)
{
if (def->os.arch != VIR_ARCH_ARMV6L &&
def->os.arch != VIR_ARCH_ARMV7L &&
def->os.arch != VIR_ARCH_AARCH64)
def->os.arch != VIR_ARCH_AARCH64 &&
!ARCH_IS_RISCV(def->os.arch)) {
return;
}
if (!(STRPREFIX(def->os.machine, "vexpress-") ||
qemuDomainIsARMVirt(def)))
qemuDomainIsARMVirt(def) ||
qemuDomainIsRISCVVirt(def))) {
return;
}
/* We use virtio-mmio by default on mach-virt guests only if they already
/* We use virtio-mmio by default on virt guests only if they already
* have at least one virtio-mmio device: in all other cases, assuming
* the QEMU binary supports all necessary capabilities (PCIe Root plus
* some kind of PCIe Root Port), we prefer virtio-pci */
@ -489,30 +493,6 @@ qemuDomainAssignARMVirtioMMIOAddresses(virDomainDefPtr def,
}
static void
qemuDomainAssignRISCVVirtioMMIOAddresses(virDomainDefPtr def,
virQEMUCapsPtr qemuCaps)
{
if (!qemuDomainIsRISCVVirt(def))
return;
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MMIO)) {
qemuDomainPrimeVirtioDeviceAddresses(def,
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO);
}
}
static void
qemuDomainAssignVirtioMMIOAddresses(virDomainDefPtr def,
virQEMUCapsPtr qemuCaps)
{
qemuDomainAssignARMVirtioMMIOAddresses(def, qemuCaps);
qemuDomainAssignRISCVVirtioMMIOAddresses(def, qemuCaps);
}
static bool
qemuDomainDeviceSupportZPCI(virDomainDeviceDefPtr device)
{