From: Andrea Bolognani Date: Wed, 17 Jan 2024 08:53:19 +0000 (+0100) Subject: qemu: Improve qemuDomainSupportsPCIMultibus() X-Git-Tag: v10.1.0-rc1~225 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5df470f47d02e39a5c6a80e78f54d8ddf98d80af;p=thirdparty%2Flibvirt.git qemu: Improve qemuDomainSupportsPCIMultibus() 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 Reviewed-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ef7506258a..de36641137 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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;