On Tue, Jun 21, 2016 at 10:11:28AM +0200, Igor Mammedov wrote: > On Mon, 20 Jun 2016 12:52:57 -0300 > Eduardo Habkost <[email protected]> wrote: > > > The new field will allow error handling to be configured by > > qdev_prop_register_global() callers: &error_fatal and > > &error_abort can be used to make QEMU exit or abort if any errors > > are reported when applying the properties. > > > > While doing it, change the error message from "global %s.%s=%s > > ignored" to "can't apply global %s.%s=%s". > > > > Suggested-by: Paolo Bonzini <[email protected]> > > Signed-off-by: Eduardo Habkost <[email protected]> > > --- > > Changes v1 -> v2: > > * Reword doc comments > > * Suggested-by: Markus Armbruster <[email protected]> > > * Squashed with patch "Use error_prepend() for errors applying > > globals" > > * Suggested-by: Markus Armbruster <[email protected]> > > * Moved to the end of struct to not break test-qdev-global-props > > --- > > hw/core/qdev-properties.c | 11 ++++++++--- > > include/hw/qdev-core.h | 4 ++++ > > 2 files changed, 12 insertions(+), 3 deletions(-) > > > > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > > index 64e17aa..0fe7214 100644 > > --- a/hw/core/qdev-properties.c > > +++ b/hw/core/qdev-properties.c > > @@ -1078,9 +1078,14 @@ static void > > qdev_prop_set_globals_for_type(DeviceState *dev, prop->used = true; > > object_property_parse(OBJECT(dev), prop->value, > > prop->property, &err); if (err != NULL) { > > - assert(prop->user_provided); > > - error_reportf_err(err, "Warning: global %s.%s=%s > > ignored: ", > > - prop->driver, prop->property, > > prop->value); > > + error_prepend(&err, "can't apply global %s.%s=%s: ", > > + prop->driver, prop->property, prop->value); > > + if (prop->errp) { > > + error_propagate(prop->errp, err); > > + } else { > > + assert(prop->user_provided); > > + error_reportf_err(err, "Warning: "); > this will never print warning as assert will trigger first, but in > 8/10 assert is removed so >
Assert won't trigger and warning will be printed if (prop->user_provided && !prop->errp). > Reviewed-by: Igor Mammedov <[email protected]> Thanks! -- Eduardo
