conf: limit chassisNr, and busNr to a minimum value of 1, not 0

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
This commit is contained in:
Laine Stump 2016-06-20 14:24:35 -04:00
parent f83ab972bc
commit df2fb9bfff
2 changed files with 5 additions and 5 deletions

View File

@ -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>

View File

@ -8405,11 +8405,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;
}
@ -8456,11 +8456,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;
}