From: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx> For QEMU2.0 forward version on PPC64, it supports PCI multibus. Currently, libvirt still disables it which causes an error "Bus 'pci' not found". Signed-off-by: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx> --- src/qemu/qemu_capabilities.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 381b3ec..812bbe0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2813,13 +2813,16 @@ virQEMUCapsInitHelp(virQEMUCapsPtr qemuCaps, uid_t runUid, gid_t runGid) false) < 0) goto cleanup; - /* Currently only x86_64 and i686 support PCI-multibus. */ - if (qemuCaps->arch == VIR_ARCH_X86_64 || - qemuCaps->arch == VIR_ARCH_I686) { + /* Currently only x86_64, i686 and PPC64 support PCI-multibus. */ + if ((qemuCaps->arch == VIR_ARCH_PPC64 && + qemuCaps->version >= 2000000) || + ARCH_IS_X86(qemuCaps->arch)) { virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS); - } else { - /* -no-acpi is not supported on other archs - * even if qemu reports it in -help */ + } + + /* -no-acpi is not supported on non-X86 archs + * even if qemu reports it in -help */ + if (!ARCH_IS_X86(qemuCaps->arch)) { virQEMUCapsClear(qemuCaps, QEMU_CAPS_NO_ACPI); } @@ -2940,11 +2943,14 @@ virQEMUCapsInitArchQMPBasic(virQEMUCapsPtr qemuCaps, } /* - * Currently only x86_64 and i686 support PCI-multibus, - * -no-acpi and -no-kvm-pit-reinjection. + * Currently only x86_64, i686 and PPC64 support PCI-multibus, + * Moreover, the first two arches support -no-acpi and + * -no-kvm-pit-reinjection. */ - if (qemuCaps->arch == VIR_ARCH_X86_64 || - qemuCaps->arch == VIR_ARCH_I686) { + if (qemuCaps->arch == VIR_ARCH_PPC64 && + qemuCaps->version >= 2000000) { + virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS); + } else if (ARCH_IS_X86(qemuCaps->arch)) { virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS); virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_ACPI); virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_KVM_PIT); -- 1.8.2.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list