]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Add RNG device ABI compatibility check
authorPeter Krempa <pkrempa@redhat.com>
Thu, 7 Feb 2013 15:27:44 +0000 (16:27 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 25 Feb 2013 09:43:05 +0000 (10:43 +0100)
src/conf/domain_conf.c

index 17c9e26210b21183c99d7670c59562eb7547e19f..3cb780d153da141864c9692f3bd99b1f2d173f60 100644 (file)
@@ -11696,6 +11696,36 @@ virDomainMemballoonDefCheckABIStability(virDomainMemballoonDefPtr src,
 }
 
 
+static bool
+virDomainRNGDefCheckABIStability(virDomainRNGDefPtr src,
+                                 virDomainRNGDefPtr dst)
+{
+    if (!src && !dst)
+        return true;
+
+    if (!src || !dst) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("Target domain RNG device count '%d' "
+                         "does not match source count '%d'"),
+                       src ? 1 : 0, dst ? 1 : 0);
+        return false;
+    }
+
+    if (src->model != dst->model) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("Target RNG model '%s' does not match source '%s'"),
+                       virDomainRNGModelTypeToString(dst->model),
+                       virDomainRNGModelTypeToString(src->model));
+        return false;
+    }
+
+    if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
+        return false;
+
+    return true;
+}
+
+
 static bool
 virDomainHubDefCheckABIStability(virDomainHubDefPtr src,
                                  virDomainHubDefPtr dst)
@@ -12097,6 +12127,9 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
                                                  dst->memballoon))
         return false;
 
+    if (!virDomainRNGDefCheckABIStability(src->rng, dst->rng))
+        return false;
+
     return true;
 }