From 5df470f47d02e39a5c6a80e78f54d8ddf98d80af Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Wed, 17 Jan 2024 09:53:19 +0100 Subject: [PATCH] qemu: Improve qemuDomainSupportsPCIMultibus() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/qemu/qemu_domain.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) 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; -- 2.47.3