]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_domain: Simplify qemuDomainFixupCPUs
authorJiri Denemark <jdenemar@redhat.com>
Fri, 24 Oct 2025 13:13:49 +0000 (15:13 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 3 Nov 2025 11:33:26 +0000 (12:33 +0100)
Since virCPUDefFilterFeatures never fails, we can use it for in-place
modifications instead of modifying a temporary virCPUDef copy.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_domain.c
src/qemu/qemu_domain.h
src/qemu/qemu_process.c

index 227eee3646a41a2177174fa4e6a2f6361f7aaf28..0c0ac4d82dab8fec6b94ac9a7e93f8f9952d806f 100644 (file)
@@ -9633,7 +9633,7 @@ qemuDomainUpdateCPU(virDomainObj *vm,
  */
 void
 qemuDomainFixupCPUs(virDomainObj *vm,
-                    virCPUDef **origCPU)
+                    virCPUDef *origCPU)
 {
     virArch arch = vm->def->os.arch;
 
@@ -9649,28 +9649,14 @@ qemuDomainFixupCPUs(virDomainObj *vm,
      * we asked for or libvirt was too old to mess up the translation from
      * host-model.
      */
-    if (!*origCPU)
+    if (!origCPU)
         return;
 
-    if (virCPUDefFindFeature(vm->def->cpu, "cmt")) {
-        g_autoptr(virCPUDef) fixedCPU = virCPUDefCopyWithoutModel(vm->def->cpu);
-
-        virCPUDefCopyModelFilter(fixedCPU, vm->def->cpu, false,
-                                 virQEMUCapsCPUFilterFeatures, &arch);
-
-        virCPUDefFree(vm->def->cpu);
-        vm->def->cpu = g_steal_pointer(&fixedCPU);
-    }
+    if (virCPUDefFindFeature(vm->def->cpu, "cmt"))
+        virCPUDefFilterFeatures(vm->def->cpu, virQEMUCapsCPUFilterFeatures, &arch);
 
-    if (virCPUDefFindFeature(*origCPU, "cmt")) {
-        g_autoptr(virCPUDef) fixedOrig = virCPUDefCopyWithoutModel(*origCPU);
-
-        virCPUDefCopyModelFilter(fixedOrig, *origCPU, false,
-                                 virQEMUCapsCPUFilterFeatures, &arch);
-
-        virCPUDefFree(*origCPU);
-        *origCPU = g_steal_pointer(&fixedOrig);
-    }
+    if (virCPUDefFindFeature(origCPU, "cmt"))
+        virCPUDefFilterFeatures(origCPU, virQEMUCapsCPUFilterFeatures, &arch);
 }
 
 
index fe4ba4fa15d82f0fb6249ce8fbcf93631d3b479a..3396f929fd9da5ae60728028b7e4dce0c8dd6451 100644 (file)
@@ -997,7 +997,7 @@ qemuDomainUpdateCPU(virDomainObj *vm,
 
 void
 qemuDomainFixupCPUs(virDomainObj *vm,
-                    virCPUDef **origCPU);
+                    virCPUDef *origCPU);
 
 char *
 qemuDomainGetMachineName(virDomainObj *vm);
index 17eac5772bea07dc3e285ee19d932e897a9cb5bc..330519fd2e61f60f5f58e418b31bc7d732feef0a 100644 (file)
@@ -8695,7 +8695,7 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
      * the CPU definitions.
      */
     if (cookie)
-        qemuDomainFixupCPUs(vm, &cookie->cpu);
+        qemuDomainFixupCPUs(vm, cookie->cpu);
 
     if (cookie && !cookie->slirpHelper)
         priv->disableSlirp = true;
@@ -9517,7 +9517,7 @@ qemuProcessRefreshCPU(virQEMUDriver *driver,
          * case the host-model is known to not contain features which QEMU
          * doesn't know about.
          */
-        qemuDomainFixupCPUs(vm, &priv->origCPU);
+        qemuDomainFixupCPUs(vm, priv->origCPU);
     }
 
     return 0;