提交 df2fb9bf 编写于 作者: L Laine Stump

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
上级 f83ab972
...@@ -3277,7 +3277,7 @@ ...@@ -3277,7 +3277,7 @@
control QEMU's "chassis_nr" option for the pci-bridge device control QEMU's "chassis_nr" option for the pci-bridge device
(normally libvirt automatically sets this to the same value as (normally libvirt automatically sets this to the same value as
the index attribute of the pci controller). If set, chassisNr the index attribute of the pci controller). If set, chassisNr
must be between 0 and 255. must be between 1 and 255.
</dd> </dd>
<dt><code>chassis</code></dt> <dt><code>chassis</code></dt>
<dd> <dd>
......
...@@ -8405,11 +8405,11 @@ virDomainControllerDefParseXML(xmlNodePtr node, ...@@ -8405,11 +8405,11 @@ virDomainControllerDefParseXML(xmlNodePtr node,
chassisNr); chassisNr);
goto error; goto error;
} }
if (def->opts.pciopts.chassisNr < 0 || if (def->opts.pciopts.chassisNr < 1 ||
def->opts.pciopts.chassisNr > 255) { def->opts.pciopts.chassisNr > 255) {
virReportError(VIR_ERR_XML_ERROR, virReportError(VIR_ERR_XML_ERROR,
_("PCI controller chassisNr '%s' out of range " _("PCI controller chassisNr '%s' out of range "
"- must be 0-255"), "- must be 1-255"),
chassisNr); chassisNr);
goto error; goto error;
} }
...@@ -8456,11 +8456,11 @@ virDomainControllerDefParseXML(xmlNodePtr node, ...@@ -8456,11 +8456,11 @@ virDomainControllerDefParseXML(xmlNodePtr node,
busNr); busNr);
goto error; goto error;
} }
if (def->opts.pciopts.busNr < 0 || if (def->opts.pciopts.busNr < 1 ||
def->opts.pciopts.busNr > 254) { def->opts.pciopts.busNr > 254) {
virReportError(VIR_ERR_XML_ERROR, virReportError(VIR_ERR_XML_ERROR,
_("PCI controller busNr '%s' out of range " _("PCI controller busNr '%s' out of range "
"- must be 0-254"), "- must be 1-254"),
busNr); busNr);
goto error; goto error;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册