pSeries guests will soon be allowed to have multiple
PHBs (pci-root controllers), meaning the current check
on the controller index no longer applies to them.
Reviewed-by: Laine Stump <laine(a)laine.org>
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/qemu/qemu_domain.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 855bd08..8072f8d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -3419,9 +3419,14 @@ qemuDomainControllerDefPostParse(virDomainControllerDefPtr cont,
break;
case VIR_DOMAIN_CONTROLLER_TYPE_PCI:
- if ((cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT ||
- cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT) &&
- cont->idx != 0) {
+
+ /* pSeries guests can have multiple pci-root controllers,
+ * but other machine types only support a single one */
+ if (!qemuDomainIsPSeries(def) &&
+ cont->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI &&
+ (cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT ||
+ cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT) &&
+ cont->idx != 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("pci-root and pcie-root controllers "
"should have index 0"));
--
2.7.5