--- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list