From fe9454c719d8ae72d2b93808ff0e9d2e02554218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 28 May 2018 14:34:51 +0200 Subject: [PATCH] conf: remove 'bootHash' completely MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Its only use is now to check for duplicate boot order values, which is now also done in virDomainDefPostParseCommon. Remove it completely. Signed-off-by: Ján Tomko --- src/conf/domain_conf.c | 89 +++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 58 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6bfd9e4a67..d3102846bd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6585,8 +6585,7 @@ virDomainDeviceUSBMasterParseXML(xmlNodePtr node, static int virDomainDeviceBootParseXML(xmlNodePtr node, - virDomainDeviceInfoPtr info, - virHashTablePtr bootHash) + virDomainDeviceInfoPtr info) { char *order; char *loadparm = NULL; @@ -6606,18 +6605,6 @@ virDomainDeviceBootParseXML(xmlNodePtr node, goto cleanup; } - if (bootHash) { - if (virHashLookup(bootHash, order)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("boot order '%s' used for more than one device"), - order); - goto cleanup; - } - - if (virHashAddEntry(bootHash, order, (void *) 1) < 0) - goto cleanup; - } - loadparm = virXMLPropString(node, "loadparm"); if (loadparm) { if (virStringToUpper(&info->loadparm, loadparm) != 1) { @@ -6815,7 +6802,6 @@ virDomainDeviceAliasIsUserAlias(const char *aliasStr) static int virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED, xmlNodePtr node, - virHashTablePtr bootHash, virDomainDeviceInfoPtr info, unsigned int flags) { @@ -6875,7 +6861,7 @@ virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED, } if (boot) { - if (virDomainDeviceBootParseXML(boot, info, bootHash)) + if (virDomainDeviceBootParseXML(boot, info)) goto cleanup; } @@ -9400,7 +9386,6 @@ static virDomainDiskDefPtr virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr node, xmlXPathContextPtr ctxt, - virHashTablePtr bootHash, virSecurityLabelDefPtr* vmSeclabels, int nvmSeclabels, unsigned int flags) @@ -9767,7 +9752,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt, } def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI; } else { - if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info, + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0) goto error; } @@ -10258,7 +10243,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt, if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_USB && def->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) { VIR_DEBUG("Ignoring device address for none model usb controller"); - } else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, + } else if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) { goto error; } @@ -10646,7 +10631,7 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt, def->dst = target; target = NULL; - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; cleanup: @@ -10936,7 +10921,6 @@ static virDomainNetDefPtr virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr node, xmlXPathContextPtr ctxt, - virHashTablePtr bootHash, char *prefix, unsigned int flags) { @@ -11224,7 +11208,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, } def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI; } else { - if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info, + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT | VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0) goto error; @@ -12523,7 +12507,7 @@ virDomainChrDefParseXML(virDomainXMLOptionPtr xmlopt, if (def->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL && def->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD) { VIR_DEBUG("Ignoring device address for gustfwd channel"); - } else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, + } else if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) { goto error; } @@ -12661,7 +12645,7 @@ virDomainSmartcardDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; if (def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID) { @@ -12762,7 +12746,7 @@ virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; cleanup: @@ -12791,7 +12775,7 @@ virDomainPanicDefParseXML(virDomainXMLOptionPtr xmlopt, if (VIR_ALLOC(panic) < 0) return NULL; - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, + if (virDomainDeviceInfoParseXML(xmlopt, node, &panic->info, flags) < 0) goto error; @@ -12927,7 +12911,7 @@ virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt, } } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; if (def->bus == VIR_DOMAIN_INPUT_BUS_USB && @@ -12991,7 +12975,7 @@ virDomainHubDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; cleanup: @@ -14148,7 +14132,7 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt, } } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; cleanup: @@ -14202,7 +14186,7 @@ virDomainWatchdogDefParseXML(virDomainXMLOptionPtr xmlopt, } } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; cleanup: @@ -14314,7 +14298,7 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt, break; } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt), @@ -14384,7 +14368,7 @@ virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt, if (def->model == VIR_DOMAIN_MEMBALLOON_MODEL_NONE) VIR_DEBUG("Ignoring device address for none model Memballoon"); - else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, + else if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; @@ -14415,7 +14399,7 @@ virDomainNVRAMDefParseXML(virDomainXMLOptionPtr xmlopt, if (VIR_ALLOC(def) < 0) return NULL; - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; return def; @@ -14511,7 +14495,7 @@ virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt, goto cleanup; } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto cleanup; @@ -15165,7 +15149,7 @@ virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt, } } - if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0) + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0) goto error; def->driver = virDomainVideoDriverDefParseXML(node); @@ -15192,7 +15176,6 @@ static virDomainHostdevDefPtr virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr node, xmlXPathContextPtr ctxt, - virHashTablePtr bootHash, unsigned int flags) { virDomainHostdevDefPtr def; @@ -15233,7 +15216,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, } if (def->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { - if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, def->info, + if (virDomainDeviceInfoParseXML(xmlopt, node, def->info, flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT | VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0) goto error; @@ -15273,7 +15256,6 @@ static virDomainRedirdevDefPtr virDomainRedirdevDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr node, xmlXPathContextPtr ctxt, - virHashTablePtr bootHash, unsigned int flags) { xmlNodePtr cur; @@ -15320,7 +15302,7 @@ virDomainRedirdevDefParseXML(virDomainXMLOptionPtr xmlopt, if (def->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC) def->source->data.spicevmc = VIR_DOMAIN_CHR_SPICEVMC_USBREDIR; - if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info, + if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0) goto error; @@ -15799,7 +15781,7 @@ virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; if (virDomainDeviceInfoParseXML(xmlopt, memdevNode, - NULL, &def->info, flags) < 0) + &def->info, flags) < 0) goto error; ctxt->node = save; @@ -15929,7 +15911,7 @@ virDomainDeviceDefParse(const char *xmlStr, switch ((virDomainDeviceType) dev->type) { case VIR_DOMAIN_DEVICE_DISK: if (!(dev->data.disk = virDomainDiskDefParseXML(xmlopt, node, ctxt, - NULL, def->seclabels, + def->seclabels, def->nseclabels, flags))) goto error; @@ -15945,7 +15927,7 @@ virDomainDeviceDefParse(const char *xmlStr, case VIR_DOMAIN_DEVICE_NET: netprefix = caps->host.netprefix; if (!(dev->data.net = virDomainNetDefParseXML(xmlopt, node, ctxt, - NULL, netprefix, flags))) + netprefix, flags))) goto error; break; case VIR_DOMAIN_DEVICE_INPUT: @@ -15970,7 +15952,7 @@ virDomainDeviceDefParse(const char *xmlStr, break; case VIR_DOMAIN_DEVICE_HOSTDEV: if (!(dev->data.hostdev = virDomainHostdevDefParseXML(xmlopt, node, - ctxt, NULL, + ctxt, flags))) goto error; break; @@ -15989,7 +15971,7 @@ virDomainDeviceDefParse(const char *xmlStr, break; case VIR_DOMAIN_DEVICE_REDIRDEV: if (!(dev->data.redirdev = virDomainRedirdevDefParseXML(xmlopt, node, - ctxt, NULL, flags))) + ctxt, flags))) goto error; break; case VIR_DOMAIN_DEVICE_RNG: @@ -16096,7 +16078,7 @@ virDomainDiskDefParse(const char *xmlStr, } disk = virDomainDiskDefParseXML(xmlopt, ctxt->node, ctxt, - NULL, seclabels, nseclabels, flags); + seclabels, nseclabels, flags); cleanup: xmlFreeDoc(xml); @@ -18476,8 +18458,7 @@ virDomainVcpuParse(virDomainDefPtr def, static int virDomainDefParseBootOptions(virDomainDefPtr def, - xmlXPathContextPtr ctxt, - virHashTablePtr *bootHash) + xmlXPathContextPtr ctxt) { xmlNodePtr *nodes = NULL; char *tmp = NULL; @@ -18609,8 +18590,6 @@ virDomainDefParseBootOptions(virDomainDefPtr def, if (virDomainDefParseBootXML(ctxt, def) < 0) goto error; - if (!(*bootHash = virHashCreate(5, NULL))) - goto error; } ret = 0; @@ -18827,7 +18806,6 @@ virDomainDefParseXML(xmlDocPtr xml, long id = -1; virDomainDefPtr def; bool uuid_generated = false; - virHashTablePtr bootHash = NULL; bool usb_none = false; bool usb_other = false; bool usb_master = false; @@ -19872,7 +19850,7 @@ virDomainDefParseXML(xmlDocPtr xml, } VIR_FREE(nodes); - if (virDomainDefParseBootOptions(def, ctxt, &bootHash) < 0) + if (virDomainDefParseBootOptions(def, ctxt) < 0) goto error; /* analysis of the disk devices */ @@ -19886,7 +19864,6 @@ virDomainDefParseXML(xmlDocPtr xml, virDomainDiskDefPtr disk = virDomainDiskDefParseXML(xmlopt, nodes[i], ctxt, - bootHash, def->seclabels, def->nseclabels, flags); @@ -19993,7 +19970,6 @@ virDomainDefParseXML(xmlDocPtr xml, virDomainNetDefPtr net = virDomainNetDefParseXML(xmlopt, nodes[i], ctxt, - bootHash, netprefix, flags); if (!net) @@ -20235,7 +20211,7 @@ virDomainDefParseXML(xmlDocPtr xml, virDomainHostdevDefPtr hostdev; hostdev = virDomainHostdevDefParseXML(xmlopt, nodes[i], ctxt, - bootHash, flags); + flags); if (!hostdev) goto error; @@ -20379,7 +20355,7 @@ virDomainDefParseXML(xmlDocPtr xml, goto error; for (i = 0; i < n; i++) { virDomainRedirdevDefPtr redirdev = - virDomainRedirdevDefParseXML(xmlopt, nodes[i], ctxt, bootHash, flags); + virDomainRedirdevDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!redirdev) goto error; @@ -20553,14 +20529,11 @@ virDomainDefParseXML(xmlDocPtr xml, if (virDomainDefValidate(def, caps, flags, xmlopt) < 0) goto error; - virHashFree(bootHash); - return def; error: VIR_FREE(tmp); VIR_FREE(nodes); - virHashFree(bootHash); virDomainDefFree(def); return NULL; }