In the case of chassisNr (used to set chassis_nr of a pci-bridge
controller), 0 is reserved for / used by the pci[e]-root bus. In the
base of busNr, a value of 0 would mean that the root bus had no places
available to plug in new buses, including the pxb itself (the
documentation I wrote for pxb even noted the limit of busNr as 1.254).
NB: oddly, the "chassis" attribute, which is used for pcie-root-port
and pcie-switch-downstream-port *can* be set to 0, since it's the
combination of {chassis, slot} that needs to be unique, not chassis by
itself (and slot 0 of pcie-root is reserved, while pcie-*-port can use
*only* slot 0).
This resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1342962
---
docs/formatdomain.html.in | 2 +-
src/conf/domain_conf.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index d181ffa..88db3bc 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3277,7 +3277,7 @@
control QEMU's "chassis_nr" option for the pci-bridge device
(normally libvirt automatically sets this to the same value as
the index attribute of the pci controller). If set, chassisNr
- must be between 0 and 255.
+ must be between 1 and 255.
</dd>
<dt><code>chassis</code></dt>
<dd>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 23ca236..9a6610b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8426,11 +8426,11 @@ virDomainControllerDefParseXML(xmlNodePtr node,
chassisNr);
goto error;
}
- if (def->opts.pciopts.chassisNr < 0 ||
+ if (def->opts.pciopts.chassisNr < 1 ||
def->opts.pciopts.chassisNr > 255) {
virReportError(VIR_ERR_XML_ERROR,
_("PCI controller chassisNr '%s' out of range
"
- "- must be 0-255"),
+ "- must be 1-255"),
chassisNr);
goto error;
}
@@ -8477,11 +8477,11 @@ virDomainControllerDefParseXML(xmlNodePtr node,
busNr);
goto error;
}
- if (def->opts.pciopts.busNr < 0 ||
+ if (def->opts.pciopts.busNr < 1 ||
def->opts.pciopts.busNr > 254) {
virReportError(VIR_ERR_XML_ERROR,
_("PCI controller busNr '%s' out of range
"
- "- must be 0-254"),
+ "- must be 1-254"),
busNr);
goto error;
}
--
2.5.5