]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainABIStabilityCheck: Check for memory aliases too
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 17 Oct 2017 08:42:54 +0000 (10:42 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 23 Oct 2017 06:52:08 +0000 (08:52 +0200)
Since we will be allowing users to set device aliases and memory
devices are fragile when it comes to aliases we have to make sure
they won't change during migration. Other devices should be fine.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_domain.c

index ece8ee7dd21cc990ad9971fe6f6a0cfec44cf426..3b94db99f8518b1c447d902ca46d4eece57598e1 100644 (file)
@@ -6428,6 +6428,8 @@ static bool
 qemuDomainABIStabilityCheck(const virDomainDef *src,
                             const virDomainDef *dst)
 {
+    size_t i;
+
     if (src->mem.source != dst->mem.source) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("Target memoryBacking source '%s' doesn't "
@@ -6437,6 +6439,19 @@ qemuDomainABIStabilityCheck(const virDomainDef *src,
         return false;
     }
 
+    for (i = 0; i < src->nmems; i++) {
+        const char *srcAlias = src->mems[i]->info.alias;
+        const char *dstAlias = dst->mems[i]->info.alias;
+
+        if (STRNEQ_NULLABLE(srcAlias, dstAlias)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("Target memory device alias '%s' doesn't "
+                             "match source alias '%s'"),
+                           NULLSTR(srcAlias), NULLSTR(dstAlias));
+            return false;
+        }
+    }
+
     return true;
 }