From 5cbc83774ae88b2e565733062d9ef4a09ddfd40e Mon Sep 17 00:00:00 2001 From: Tim Wiederhake Date: Wed, 7 Apr 2021 13:48:30 +0200 Subject: [PATCH] conf: Use virTristateXXX in virDomainDeviceInfo Note that the wrong "VIR_TRISTATE_*_ABSENT" was used in qemuDomainChangeNet. Signed-off-by: Tim Wiederhake Reviewed-by: Peter Krempa --- src/conf/device_conf.h | 4 ++-- src/conf/domain_conf.c | 26 ++++++++++++++++---------- src/qemu/qemu_command.c | 3 ++- src/qemu/qemu_hotplug.c | 2 +- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index cec34ededd..09ef5dda92 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -143,8 +143,8 @@ struct _virDomainDeviceInfo { } master; /* rombar and romfile are only used for pci hostdev and network * devices. */ - int romenabled; /* enum virTristateBool */ - int rombar; /* enum virTristateSwitch */ + virTristateBool romenabled; + virTristateSwitch rombar; char *romfile; /* bootIndex is only used for disk, network interface, hostdev * and redirdev devices */ diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 410d372382..b9cfa2b827 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6691,17 +6691,23 @@ virDomainDeviceInfoParseXML(virDomainXMLOption *xmlopt, if ((flags & VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) && (rom = virXPathNode("./rom", ctxt))) { - if ((romenabled = virXPathString("string(./rom/@enabled)", ctxt)) && - ((info->romenabled = virTristateBoolTypeFromString(romenabled)) <= 0)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown rom enabled value '%s'"), romenabled); - goto cleanup; + if ((romenabled = virXPathString("string(./rom/@enabled)", ctxt))) { + int value; + if ((value = virTristateBoolTypeFromString(romenabled)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown rom enabled value '%s'"), romenabled); + goto cleanup; + } + info->romenabled = value; } - if ((rombar = virXPathString("string(./rom/@bar)", ctxt)) && - ((info->rombar = virTristateSwitchTypeFromString(rombar)) <= 0)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown rom bar value '%s'"), rombar); - goto cleanup; + if ((rombar = virXPathString("string(./rom/@bar)", ctxt))) { + int value; + if ((value = virTristateSwitchTypeFromString(rombar)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown rom bar value '%s'"), rombar); + goto cleanup; + } + info->rombar = value; } info->romfile = virXMLPropString(rom, "file"); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 489b15a283..77d8e3f38c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -713,7 +713,8 @@ qemuBuildRomStr(virBuffer *buf, case VIR_TRISTATE_SWITCH_ON: virBufferAddLit(buf, ",rombar=1"); break; - default: + case VIR_TRISTATE_SWITCH_ABSENT: + case VIR_TRISTATE_SWITCH_LAST: break; } if (info->romfile) { diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 4ac67971ff..20c34ef104 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3653,7 +3653,7 @@ qemuDomainChangeNet(virQEMUDriver *driver, /* device alias is checked already in virDomainDefCompatibleDevice */ - if (newdev->info.rombar == VIR_TRISTATE_BOOL_ABSENT) + if (newdev->info.rombar == VIR_TRISTATE_SWITCH_ABSENT) newdev->info.rombar = olddev->info.rombar; if (olddev->info.rombar != newdev->info.rombar) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", -- 2.47.2