diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c8dee851ba..c02d469e78 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14569,18 +14569,24 @@ virDomainMemballoonDefParseXML(virDomainXMLOption *xmlopt, goto error; } - if ((deflate = virXMLPropString(node, "autodeflate")) && - (def->autodeflate = virTristateSwitchTypeFromString(deflate)) <= 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("invalid autodeflate attribute value '%s'"), deflate); - goto error; + if ((deflate = virXMLPropString(node, "autodeflate"))) { + int value; + if ((value = virTristateSwitchTypeFromString(deflate)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("invalid autodeflate attribute value '%s'"), deflate); + goto error; + } + def->autodeflate = value; } - if ((freepage_reporting = virXMLPropString(node, "freePageReporting")) && - (def->free_page_reporting = virTristateSwitchTypeFromString(freepage_reporting)) <= 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("invalid freePageReporting attribute value '%s'"), freepage_reporting); - goto error; + if ((freepage_reporting = virXMLPropString(node, "freePageReporting"))) { + int value; + if ((value = virTristateSwitchTypeFromString(freepage_reporting)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("invalid freePageReporting attribute value '%s'"), freepage_reporting); + goto error; + } + def->free_page_reporting = value; } ctxt->node = node; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index cec37923d8..a4c07d7dfb 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1915,8 +1915,8 @@ struct _virDomainMemballoonDef { int model; virDomainDeviceInfo info; int period; /* seconds between collections */ - int autodeflate; /* enum virTristateSwitch */ - int free_page_reporting; /* enum virTristateSwitch */ + virTristateSwitch autodeflate; + virTristateSwitch free_page_reporting; virDomainVirtioOptions *virtio; };