[libvirt] [PATCH 02/10] conf: Turn targetNode in struct virDomainMemoryDef to signed

Peter Krempa pkrempa at redhat.com
Fri Oct 16 12:11:39 UTC 2015


Later on, we will need to know whether the user specified the target
node or not. Turn the variable into a signed value. We already treat it
as signed in various parts of the qemu driver.
---
 src/conf/domain_conf.c | 10 ++++++----
 src/conf/domain_conf.h |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 002bf13..514bd8a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12521,7 +12521,8 @@ virDomainMemoryTargetDefParseXML(xmlNodePtr node,
     xmlNodePtr save = ctxt->node;
     ctxt->node = node;

-    if (virXPathUInt("string(./node)", ctxt, &def->targetNode) < 0) {
+    if (virXPathInt("string(./node)", ctxt, &def->targetNode) < 0 ||
+        def->targetNode < 0) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
                        _("invalid or missing value of memory device node"));
         goto cleanup;
@@ -17668,8 +17669,8 @@ virDomainMemoryDefCheckABIStability(virDomainMemoryDefPtr src,

     if (src->targetNode != dst->targetNode) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("Target memory device targetNode '%u' "
-                         "doesn't match source targetNode '%u'"),
+                       _("Target memory device targetNode '%d' "
+                         "doesn't match source targetNode '%d'"),
                        dst->targetNode, src->targetNode);
         return false;
     }
@@ -20759,7 +20760,8 @@ virDomainMemoryTargetDefFormat(virBufferPtr buf,
     virBufferAdjustIndent(buf, 2);

     virBufferAsprintf(buf, "<size unit='KiB'>%llu</size>\n", def->size);
-    virBufferAsprintf(buf, "<node>%u</node>\n", def->targetNode);
+    if (def->targetNode >= 0)
+        virBufferAsprintf(buf, "<node>%d</node>\n", def->targetNode);

     virBufferAdjustIndent(buf, -2);
     virBufferAddLit(buf, "</target>\n");
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index f10b534..8d43ee6 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2022,7 +2022,7 @@ struct _virDomainMemoryDef {

     /* target */
     int model; /* virDomainMemoryModel */
-    unsigned int targetNode;
+    int targetNode;
     unsigned long long size; /* kibibytes */

     virDomainDeviceInfo info;
-- 
2.4.5




More information about the libvir-list mailing list