]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: domain: Restructure control flow in qemuDomainFixupCPUs
authorPeter Krempa <pkrempa@redhat.com>
Fri, 3 Mar 2023 08:59:16 +0000 (09:59 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 6 Mar 2023 19:55:50 +0000 (20:55 +0100)
Do the two fixups of CPU as one block and split up the return value
checks to separate conditions. This will make the upcoming refactors
simpler.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_domain.c

index e5768875ba6915e5ade788f9b03c140af3a5d20c..a7bffe1bc21cc515794c67c1a7eb4db33a79b224 100644 (file)
@@ -10802,8 +10802,6 @@ int
 qemuDomainFixupCPUs(virDomainObj *vm,
                     virCPUDef **origCPU)
 {
-    g_autoptr(virCPUDef) fixedCPU = NULL;
-    g_autoptr(virCPUDef) fixedOrig = NULL;
     virArch arch = vm->def->os.arch;
 
     if (!ARCH_IS_X86(arch))
@@ -10821,24 +10819,30 @@ qemuDomainFixupCPUs(virDomainObj *vm,
     if (!*origCPU)
         return 0;
 
-    if (virCPUDefFindFeature(vm->def->cpu, "cmt") &&
-        (!(fixedCPU = virCPUDefCopyWithoutModel(vm->def->cpu)) ||
-         virCPUDefCopyModelFilter(fixedCPU, vm->def->cpu, false,
-                                  virQEMUCapsCPUFilterFeatures, &arch) < 0))
-        return -1;
+    if (virCPUDefFindFeature(vm->def->cpu, "cmt")) {
+        g_autoptr(virCPUDef) fixedCPU = virCPUDefCopyWithoutModel(vm->def->cpu);
 
-    if (virCPUDefFindFeature(*origCPU, "cmt") &&
-        (!(fixedOrig = virCPUDefCopyWithoutModel(*origCPU)) ||
-         virCPUDefCopyModelFilter(fixedOrig, *origCPU, false,
-                                  virQEMUCapsCPUFilterFeatures, &arch) < 0))
-        return -1;
+        if (!fixedCPU)
+            return -1;
+
+        if (virCPUDefCopyModelFilter(fixedCPU, vm->def->cpu, false,
+                                     virQEMUCapsCPUFilterFeatures, &arch) < 0)
+            return -1;
 
-    if (fixedCPU) {
         virCPUDefFree(vm->def->cpu);
         vm->def->cpu = g_steal_pointer(&fixedCPU);
     }
 
-    if (fixedOrig) {
+    if (virCPUDefFindFeature(*origCPU, "cmt")) {
+        g_autoptr(virCPUDef) fixedOrig = virCPUDefCopyWithoutModel(*origCPU);
+
+        if (!fixedOrig)
+            return -1;
+
+        if (virCPUDefCopyModelFilter(fixedOrig, *origCPU, false,
+                                     virQEMUCapsCPUFilterFeatures, &arch) < 0)
+            return -1;
+
         virCPUDefFree(*origCPU);
         *origCPU = g_steal_pointer(&fixedOrig);
     }