[libvirt] [PATCH] conf: limit chassisNr, and busNr to a minimum value of 1, not 0

Laine Stump laine at laine.org
Mon Jun 20 19:03:41 UTC 2016


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




More information about the libvir-list mailing list