]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Improve qemuDomainSupportsPCIMultibus()
authorAndrea Bolognani <abologna@redhat.com>
Wed, 17 Jan 2024 08:53:19 +0000 (09:53 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Wed, 17 Jan 2024 18:28:50 +0000 (19:28 +0100)
Rewrite the function so that it's more compact and easier to
extend as new architectures, which will likely come with
multibus support right out the gate, are introduced.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_domain.c

index ef7506258a7595666d8b8d741cf4d2591edcbe2a..de36641137ef9a3a72acfbc7c2761b052d5edc41 100644 (file)
@@ -9088,23 +9088,16 @@ qemuDomainSupportsPCI(const virDomainDef *def)
 bool
 qemuDomainSupportsPCIMultibus(const virDomainDef *def)
 {
-    /* x86_64 and i686 support PCI-multibus on all machine types
-     * since forever */
-    if (ARCH_IS_X86(def->os.arch))
-        return true;
-
-    /* PPC supports multibus on all machine types which have pci since qemu-2.0.0 */
-    if (def->os.arch == VIR_ARCH_PPC ||
-        ARCH_IS_PPC64(def->os.arch)) {
+    /* Most architectures support multibus for all machine types on
+     * all supported QEMU versions */
+    if (ARCH_IS_X86(def->os.arch) ||
+        ARCH_IS_PPC(def->os.arch) ||
+        ARCH_IS_S390(def->os.arch)) {
         return true;
     }
 
-    /* S390 supports PCI-multibus. */
-    if (ARCH_IS_S390(def->os.arch))
-        return true;
-
-    /* If the virt machine, both on ARM and RISC-V, supports PCI,
-     * then it also supports multibus */
+    /* In some cases, support for multibus is limited to some machine
+     * types */
     if (qemuDomainIsARMVirt(def) ||
         qemuDomainIsRISCVVirt(def)) {
         return true;