diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 677b06fb41c193c047ae59ac619acaf8adea8c25..c081e840062d2fbafea41ea5410d6d6fa9905e7c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2184,8 +2184,7 @@ bool virQEMUCapsHasPCIMultiBus(virQEMUCapsPtr qemuCaps, /* If 'virt' supports PCI, it supports multibus. * No extra conditions here for simplicity. */ - if (STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-")) + if (qemuDomainMachineIsVirt(def)) return true; } diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index bd564db5bd9533bb21748d76fae3430f90e60d83..bcc0e63b4e4c7bce8a052b1afb862e8ff2138a51 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6807,8 +6807,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, if (def->gic_version != VIR_GIC_VERSION_NONE) { if ((def->os.arch != VIR_ARCH_ARMV7L && def->os.arch != VIR_ARCH_AARCH64) || - (STRNEQ(def->os.machine, "virt") && - !STRPREFIX(def->os.machine, "virt-"))) { + !qemuDomainMachineIsVirt(def)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("gic-version option is available " "only for ARM virt machine")); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 95193348812540840ba3d0de96d247b0dcb69599..53682c1bf32f0e4a6e5268525f9d56a63725631d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1761,10 +1761,8 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def, case VIR_ARCH_AARCH64: addDefaultUSB = false; addDefaultMemballoon = false; - if (STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-")) { + if (qemuDomainMachineIsVirt(def)) addPCIeRoot = virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_GPEX); - } break; case VIR_ARCH_PPC64: @@ -1906,8 +1904,7 @@ qemuDomainDefEnableDefaultFeatures(virDomainDefPtr def) switch (def->os.arch) { case VIR_ARCH_ARMV7L: case VIR_ARCH_AARCH64: - if (STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-")) { + if (qemuDomainMachineIsVirt(def)) { /* GIC is always available to ARM virt machines */ def->features[VIR_DOMAIN_FEATURE_GIC] = VIR_TRISTATE_SWITCH_ON; } @@ -2039,8 +2036,7 @@ qemuDomainDefaultNetModel(const virDomainDef *def, if (STREQ(def->os.machine, "versatilepb")) return "smc91c111"; - if (STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-")) + if (qemuDomainMachineIsVirt(def)) return "virtio"; /* Incomplete. vexpress (and a few others) use this, but not all @@ -4653,6 +4649,14 @@ qemuDomainMachineIsS390CCW(const virDomainDef *def) } +bool +qemuDomainMachineIsVirt(const virDomainDef *def) +{ + return STREQ(def->os.machine, "virt") || + STRPREFIX(def->os.machine, "virt-"); +} + + static bool qemuCheckMemoryDimmConflict(const virDomainDef *def, const virDomainMemoryDef *mem) diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 63f98ba7cfe603ba85941abee0756046fbf427f5..95f821c493673bd7c0ee58cc351b3ba037556746 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -584,6 +584,7 @@ bool qemuDomainMachineIsQ35(const virDomainDef *def); bool qemuDomainMachineIsI440FX(const virDomainDef *def); bool qemuDomainMachineNeedsFDC(const virDomainDef *def); bool qemuDomainMachineIsS390CCW(const virDomainDef *def); +bool qemuDomainMachineIsVirt(const virDomainDef *def); bool qemuDomainMachineHasBuiltinIDE(const virDomainDef *def); int qemuDomainUpdateCurrentMemorySize(virQEMUDriverPtr driver, diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index b3220a52634bb92d25d9742b1aa29f5bab2f85e2..9c8c262cc8b61b8376553ea25b513b0d58bdf06a 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -407,8 +407,7 @@ qemuDomainAssignARMVirtioMMIOAddresses(virDomainDefPtr def, return; if (!(STRPREFIX(def->os.machine, "vexpress-") || - STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-"))) + qemuDomainMachineIsVirt(def))) return; if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MMIO)) { @@ -1342,8 +1341,7 @@ qemuDomainSupportsPCI(virDomainDefPtr def, if (STREQ(def->os.machine, "versatilepb")) return true; - if ((STREQ(def->os.machine, "virt") || - STRPREFIX(def->os.machine, "virt-")) && + if (qemuDomainMachineIsVirt(def) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_GPEX)) return true;