Otherwise we'll keep using the new pinning value even if it can't be applied to the thread. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2040555 Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/qemu/qemu_driver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 077547e1d3..3c0c81a6b9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5018,10 +5018,6 @@ qemuDomainPinIOThread(virDomainPtr dom, goto endjob; } - virBitmapFree(iothrid->cpumask); - iothrid->cpumask = virBitmapNewCopy(pcpumap); - iothrid->autofill = false; - /* Configure the corresponding cpuset cgroup before set affinity. */ if (virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) { @@ -5039,6 +5035,10 @@ qemuDomainPinIOThread(virDomainPtr dom, if (virProcessSetAffinity(iothrid->thread_id, pcpumap, false) < 0) goto endjob; + virBitmapFree(iothrid->cpumask); + iothrid->cpumask = virBitmapNewCopy(pcpumap); + iothrid->autofill = false; + qemuDomainSaveStatus(vm); if (g_snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH, -- 2.34.1