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 <abologna@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2024-01-17 09:53:19 +01:00
parent 176c3b105e
commit 5df470f47d

View 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;