From: Peter Krempa Date: Fri, 31 Mar 2017 11:02:14 +0000 (+0200) Subject: qemu: hotplug: Iterate over vcpu 0 in individual vcpu hotplug code X-Git-Tag: v3.3.0-rc1~296 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=315f443dbb9f821fb207c30585e01dfbaac01878;p=thirdparty%2Flibvirt.git qemu: hotplug: Iterate over vcpu 0 in individual vcpu hotplug code Buggy condition meant that vcpu0 would not be iterated in the checks. Since it's not hotpluggable anyways we would not be able to break the configuration of a live VM. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1437013 --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index de561da58e..b5b520d8c6 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5784,7 +5784,7 @@ qemuDomainSetVcpuConfig(virDomainDefPtr def, def->individualvcpus = true; - while ((next = virBitmapNextSetBit(map, next)) > 0) { + while ((next = virBitmapNextSetBit(map, next)) >= 0) { if (!(vcpu = virDomainDefGetVcpu(def, next))) continue; @@ -5817,7 +5817,7 @@ qemuDomainFilterHotplugVcpuEntities(virDomainDefPtr def, return NULL; /* make sure that all selected vcpus are in the correct state */ - while ((next = virBitmapNextSetBit(map, next)) > 0) { + while ((next = virBitmapNextSetBit(map, next)) >= 0) { if (!(vcpu = virDomainDefGetVcpu(def, next))) continue; @@ -5837,7 +5837,7 @@ qemuDomainFilterHotplugVcpuEntities(virDomainDefPtr def, /* Make sure that all vCPUs belonging to a single hotpluggable entity were * selected and then de-select any sub-threads of it. */ next = -1; - while ((next = virBitmapNextSetBit(map, next)) > 0) { + while ((next = virBitmapNextSetBit(map, next)) >= 0) { if (!(vcpu = virDomainDefGetVcpu(def, next))) continue;