---
src/conf/domain_conf.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a16d70b..53c6b2f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -11699,6 +11699,36 @@ cleanup:
}
+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)
{
@@ -12081,6 +12111,9 @@ bool virDomainDefCheckABIStability(virDomainDefPtr src,
!virDomainMemballoonDefCheckABIStability(src->memballoon,
dst->memballoon))
goto cleanup;
+ if (!virDomainRNGDefCheckABIStability(src->rng, dst->rng))
+ goto cleanup;
+
identical = true;
cleanup:
--
1.8.1.1