提交 b83543c5 编写于 作者: P Peter Krempa

conf: numa: Don't pass double pointer to virDomainNumatuneParseXML

virDomainNumatuneParseXML now doesn't allocate the def->numa object any
longer so we don't need to pass a double pointer.
上级 fa993072
...@@ -13528,7 +13528,7 @@ virDomainDefParseXML(xmlDocPtr xml, ...@@ -13528,7 +13528,7 @@ virDomainDefParseXML(xmlDocPtr xml,
goto error; goto error;
} }
if (virDomainNumatuneParseXML(&def->numa, if (virDomainNumatuneParseXML(def->numa,
def->placement_mode == def->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC, VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
def->cpu ? def->cpu->ncells : 0, def->cpu ? def->cpu->ncells : 0,
......
...@@ -82,7 +82,7 @@ virDomainNumatuneNodeSpecified(virDomainNumaPtr numatune, ...@@ -82,7 +82,7 @@ virDomainNumatuneNodeSpecified(virDomainNumaPtr numatune,
} }
static int static int
virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, virDomainNumatuneNodeParseXML(virDomainNumaPtr numa,
size_t ncells, size_t ncells,
xmlXPathContextPtr ctxt) xmlXPathContextPtr ctxt)
{ {
...@@ -90,7 +90,6 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, ...@@ -90,7 +90,6 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
int n = 0; int n = 0;
int ret = -1; int ret = -1;
size_t i = 0; size_t i = 0;
virDomainNumaPtr numatune = *numatunePtr;
xmlNodePtr *nodes = NULL; xmlNodePtr *nodes = NULL;
if ((n = virXPathNodeSet("./numatune/memnode", ctxt, &nodes)) < 0) { if ((n = virXPathNodeSet("./numatune/memnode", ctxt, &nodes)) < 0) {
...@@ -102,8 +101,8 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, ...@@ -102,8 +101,8 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
if (!n) if (!n)
return 0; return 0;
if (numatune && numatune->memory.specified && if (numa->memory.specified &&
numatune->memory.placement == VIR_DOMAIN_NUMATUNE_PLACEMENT_AUTO) { numa->memory.placement == VIR_DOMAIN_NUMATUNE_PLACEMENT_AUTO) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Per-node binding is not compatible with " _("Per-node binding is not compatible with "
"automatic NUMA placement.")); "automatic NUMA placement."));
...@@ -117,11 +116,11 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, ...@@ -117,11 +116,11 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
goto cleanup; goto cleanup;
} }
VIR_FREE(numatune->mem_nodes); VIR_FREE(numa->mem_nodes);
if (VIR_ALLOC_N(numatune->mem_nodes, ncells) < 0) if (VIR_ALLOC_N(numa->mem_nodes, ncells) < 0)
goto cleanup; goto cleanup;
numatune->nmem_nodes = ncells; numa->nmem_nodes = ncells;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
int mode = 0; int mode = 0;
...@@ -144,14 +143,14 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, ...@@ -144,14 +143,14 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
} }
VIR_FREE(tmp); VIR_FREE(tmp);
if (cellid >= numatune->nmem_nodes) { if (cellid >= numa->nmem_nodes) {
virReportError(VIR_ERR_XML_ERROR, "%s", virReportError(VIR_ERR_XML_ERROR, "%s",
_("Argument 'cellid' in memnode element must " _("Argument 'cellid' in memnode element must "
"correspond to existing guest's NUMA cell")); "correspond to existing guest's NUMA cell"));
goto cleanup; goto cleanup;
} }
mem_node = &numatune->mem_nodes[cellid]; mem_node = &numa->mem_nodes[cellid];
if (mem_node->nodeset) { if (mem_node->nodeset) {
virReportError(VIR_ERR_XML_ERROR, virReportError(VIR_ERR_XML_ERROR,
...@@ -194,7 +193,7 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr, ...@@ -194,7 +193,7 @@ virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
} }
int int
virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr, virDomainNumatuneParseXML(virDomainNumaPtr numa,
bool placement_static, bool placement_static,
size_t ncells, size_t ncells,
xmlXPathContextPtr ctxt) xmlXPathContextPtr ctxt)
...@@ -245,14 +244,14 @@ virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr, ...@@ -245,14 +244,14 @@ virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr,
VIR_FREE(tmp); VIR_FREE(tmp);
} }
if (virDomainNumatuneSet(*numatunePtr, if (virDomainNumatuneSet(numa,
placement_static, placement_static,
placement, placement,
mode, mode,
nodeset) < 0) nodeset) < 0)
goto cleanup; goto cleanup;
if (virDomainNumatuneNodeParseXML(numatunePtr, ncells, ctxt) < 0) if (virDomainNumatuneNodeParseXML(numa, ncells, ctxt) < 0)
goto cleanup; goto cleanup;
ret = 0; ret = 0;
......
...@@ -62,7 +62,7 @@ void virDomainNumaFree(virDomainNumaPtr numa); ...@@ -62,7 +62,7 @@ void virDomainNumaFree(virDomainNumaPtr numa);
/* /*
* XML Parse/Format functions * XML Parse/Format functions
*/ */
int virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr, int virDomainNumatuneParseXML(virDomainNumaPtr numa,
bool placement_static, bool placement_static,
size_t ncells, size_t ncells,
xmlXPathContextPtr ctxt) xmlXPathContextPtr ctxt)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册