diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6d62519d72..b0324415dc 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6949,7 +6949,7 @@ static int qemuDomainAttachDeviceFlags(virDomainPtr dom, const char *xml, virDomainDefPtr vmdef = NULL; virDomainDeviceDefPtr dev = NULL, dev_copy = NULL; int ret = -1; - unsigned int affect, parse_flags = 0; + unsigned int affect, parse_flags = VIR_DOMAIN_XML_INACTIVE; virQEMUCapsPtr qemuCaps = NULL; qemuDomainObjPrivatePtr priv; virQEMUDriverConfigPtr cfg = NULL; @@ -6997,10 +6997,6 @@ static int qemuDomainAttachDeviceFlags(virDomainPtr dom, const char *xml, goto endjob; } - if ((flags & VIR_DOMAIN_AFFECT_CONFIG) && - !(flags & VIR_DOMAIN_AFFECT_LIVE)) - parse_flags |= VIR_DOMAIN_XML_INACTIVE; - dev = dev_copy = virDomainDeviceDefParse(xml, vm->def, caps, driver->xmlopt, parse_flags); diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index eaf424d2f7..9d39968615 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -209,6 +209,7 @@ testQemuHotplug(const void *data) const char *const *tmp; bool fail = test->fail; bool keep = test->keep; + unsigned int device_parse_flags = 0; virDomainObjPtr vm = NULL; virDomainDeviceDefPtr dev = NULL; virCapsPtr caps = NULL; @@ -244,8 +245,12 @@ testQemuHotplug(const void *data) goto cleanup; } + if (test->action == ATTACH) + device_parse_flags = VIR_DOMAIN_XML_INACTIVE; + if (!(dev = virDomainDeviceDefParse(device_xml, vm->def, - caps, driver.xmlopt, 0))) + caps, driver.xmlopt, + device_parse_flags))) goto cleanup; /* Now is the best time to feed the spoofed monitor with predefined