From f6ba9fc12a043b5be636bc199d1bc7b2ec2fa227 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 18 May 2023 10:27:52 +0200 Subject: [PATCH] numa_conf: Move memnode mode validation into virDomainNumaDefValidate() When parsing a we also check whether the @mode argument fulfills some requirements wrt 'restrictive' mode. This is not the right place though. There's virDomainNumaDefValidate() which contains other checks. Signed-off-by: Michal Privoznik Reviewed-by: Martin Kletzander --- src/conf/numa_conf.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index dd4997c759..6095139385 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -191,14 +191,6 @@ virDomainNumatuneNodeParseXML(virDomainNuma *numa, VIR_DOMAIN_NUMATUNE_MEM_STRICT) < 0) return -1; - if (numa->memory.mode == VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE && - mem_node->mode != VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("'restrictive' mode is required in memnode element " - "when mode is 'restrictive' in memory element")); - return -1; - } - tmp = virXMLPropString(cur_node, "nodeset"); if (!tmp) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -1083,6 +1075,14 @@ virDomainNumaDefValidate(const virDomainNuma *def) const virDomainNumaNode *node = &def->mem_nodes[i]; g_autoptr(virBitmap) levelsSeen = virBitmapNew(0); + if (virDomainNumatuneNodeSpecified(def, i) && + def->memory.mode == VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE && + node->mode != VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("'restrictive' mode is required in memnode element when mode is 'restrictive' in memory element")); + return -1; + } + for (j = 0; j < node->ncaches; j++) { const virNumaCache *cache = &node->caches[j];