On Fri, Nov 13, 2015 at 20:16:40 +0300, Dmitry Andreev wrote: > Only one panic device per model is allowed. > --- > src/conf/domain_conf.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index 2f17675..b4a46ad 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -3747,6 +3747,30 @@ virDomainDefRejectDuplicateControllers(virDomainDefPtr def) > return ret; > } > > +static int > +virDomainDefRejectDuplicatePanics(virDomainDefPtr def) > +{ > + bool exists[VIR_DOMAIN_PANIC_MODEL_LAST]; > + size_t i; > + > + for (i = 0; i < VIR_DOMAIN_PANIC_MODEL_LAST; i++) > + exists[i] = false; > + > + for (i = 0; i < def->npanics; i++) { > + virDomainPanicModel model = def->panics[i]->model; > + if (!exists[model]) { > + exists[model] = true; Wrong indentation. > + } else { > + virReportError(VIR_ERR_XML_ERROR, > + _("Multiple panic devices with model '%s'"), > + virDomainPanicModelTypeToString(model)); > + return -1; > + } But I think avoiding negative test would make the code a bit more readable: if (exists[model]) { virReportError(...); return -1; } exists[model] = true; > + Extra empty line. > + } > + > + return 0; > +} > > /** > * virDomainDefMetadataSanitize: > @@ -3976,6 +4000,9 @@ virDomainDefPostParseInternal(virDomainDefPtr def, > if (virDomainDefRejectDuplicateControllers(def) < 0) > return -1; > > + if (virDomainDefRejectDuplicatePanics(def) < 0) > + return -1; > + > /* verify settings of guest timers */ > for (i = 0; i < def->clock.ntimers; i++) { > virDomainTimerDefPtr timer = def->clock.timers[i]; Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list