From: Jiri Denemark <[email protected]>

Since virCPUDefFilterFeatures never fails, we can use it for in-place
modifications instead of modifying a temporary virCPUDef copy.

Signed-off-by: Jiri Denemark <[email protected]>
---
 src/qemu/qemu_domain.c  | 26 ++++++--------------------
 src/qemu/qemu_domain.h  |  2 +-
 src/qemu/qemu_process.c |  4 ++--
 3 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 227eee3646..0c0ac4d82d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -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);
+    if (virCPUDefFindFeature(vm->def->cpu, "cmt"))
+        virCPUDefFilterFeatures(vm->def->cpu, virQEMUCapsCPUFilterFeatures, 
&arch);
 
-        virCPUDefCopyModelFilter(fixedCPU, vm->def->cpu, false,
-                                 virQEMUCapsCPUFilterFeatures, &arch);
-
-        virCPUDefFree(vm->def->cpu);
-        vm->def->cpu = g_steal_pointer(&fixedCPU);
-    }
-
-    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);
 }
 
 
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index fe4ba4fa15..3396f929fd 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -997,7 +997,7 @@ qemuDomainUpdateCPU(virDomainObj *vm,
 
 void
 qemuDomainFixupCPUs(virDomainObj *vm,
-                    virCPUDef **origCPU);
+                    virCPUDef *origCPU);
 
 char *
 qemuDomainGetMachineName(virDomainObj *vm);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 17eac5772b..330519fd2e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -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;
-- 
2.51.0

Reply via email to