]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: domain: Check arch in qemuDomainMakeCPUMigratable
authorJiri Denemark <jdenemar@redhat.com>
Mon, 11 Mar 2024 14:34:37 +0000 (15:34 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 14 Mar 2024 15:15:06 +0000 (16:15 +0100)
The content is arch specific and checking for Icelake-Server CPU model
on non-x86 architectures does not make sense.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_domain.c
src/qemu/qemu_domain.h
src/qemu/qemu_migration_cookie.c

index 8c85446c3de7b264c6969d43eca471226465b40b..31a6509166d35c83ebb36b00efeae3a9ccd33b45 100644 (file)
@@ -6644,10 +6644,15 @@ qemuDomainDefCopy(virQEMUDriver *driver,
 
 
 int
-qemuDomainMakeCPUMigratable(virCPUDef *cpu)
+qemuDomainMakeCPUMigratable(virArch arch,
+                            virCPUDef *cpu)
 {
-    if (cpu->mode == VIR_CPU_MODE_CUSTOM &&
-        STREQ_NULLABLE(cpu->model, "Icelake-Server")) {
+    if (cpu->mode != VIR_CPU_MODE_CUSTOM ||
+        !cpu->model ||
+        !ARCH_IS_X86(arch))
+        return 0;
+
+    if (STREQ(cpu->model, "Icelake-Server")) {
         /* Originally Icelake-Server CPU model contained pconfig CPU feature.
          * It was never actually enabled and thus it was removed. To enable
          * migration to QEMU 3.1.0 (with both new and old libvirt), we
@@ -6837,7 +6842,8 @@ qemuDomainDefFormatBufInternal(virQEMUDriver *driver,
                 return -1;
         }
 
-        if (def->cpu && qemuDomainMakeCPUMigratable(def->cpu) < 0)
+        if (def->cpu &&
+            qemuDomainMakeCPUMigratable(def->os.arch, def->cpu) < 0)
             return -1;
 
         /* Old libvirt doesn't understand <audio> elements so
index 98c188cc8f6fb5cd312759da11b7edf57ed8729e..07b031825874bf840cdb77441b9cf88c26b9fb75 100644 (file)
@@ -1048,7 +1048,8 @@ qemuDomainSupportsCheckpointsBlockjobs(virDomainObj *vm)
     G_GNUC_WARN_UNUSED_RESULT;
 
 int
-qemuDomainMakeCPUMigratable(virCPUDef *cpu);
+qemuDomainMakeCPUMigratable(virArch arch,
+                            virCPUDef *cpu);
 
 int
 qemuDomainInitializePflashStorageSource(virDomainObj *vm,
index 4361949cca4a97d5ff21c5e776136e753404cb8e..c53d42a01843dc549c7b88e26fcdb9169d6d8d57 100644 (file)
@@ -545,7 +545,7 @@ qemuMigrationCookieAddCPU(qemuMigrationCookie *mig,
 
     mig->cpu = virCPUDefCopy(vm->def->cpu);
 
-    if (qemuDomainMakeCPUMigratable(mig->cpu) < 0)
+    if (qemuDomainMakeCPUMigratable(vm->def->os.arch, mig->cpu) < 0)
         return -1;
 
     mig->flags |= QEMU_MIGRATION_COOKIE_CPU;