[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 04/10] qdev: GlobalProperty.errp field
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH v2 04/10] qdev: GlobalProperty.errp field |
Date: |
Tue, 21 Jun 2016 10:32:19 -0300 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Tue, Jun 21, 2016 at 10:11:28AM +0200, Igor Mammedov wrote:
> On Mon, 20 Jun 2016 12:52:57 -0300
> Eduardo Habkost <address@hidden> 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 <address@hidden>
> > Signed-off-by: Eduardo Habkost <address@hidden>
> > ---
> > Changes v1 -> v2:
> > * Reword doc comments
> > * Suggested-by: Markus Armbruster <address@hidden>
> > * Squashed with patch "Use error_prepend() for errors applying
> > globals"
> > * Suggested-by: Markus Armbruster <address@hidden>
> > * 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 <address@hidden>
Thanks!
--
Eduardo
- Re: [Qemu-devel] [PATCH v2 05/10] machine: Add machine_register_compat_props() function, (continued)
- [Qemu-devel] [PATCH v2 08/10] qdev: Eliminate GlobalProperty 'used' and 'user_provided' fields, Eduardo Habkost, 2016/06/20
- [Qemu-devel] [PATCH v2 06/10] vl: Set errp to &error_abort on machine compat_props, Eduardo Habkost, 2016/06/20
- [Qemu-devel] [PATCH v2 09/10] qdev: Remove qdev_prop_register_global_list(), Eduardo Habkost, 2016/06/20
- [Qemu-devel] [PATCH v2 04/10] qdev: GlobalProperty.errp field, Eduardo Habkost, 2016/06/20
- [Qemu-devel] [PATCH v2 10/10] machine: Skip global registration for non-existing classes, Eduardo Habkost, 2016/06/20
- [Qemu-devel] [PATCH v2 07/10] qdev: Eliminate "global not used" warning, Eduardo Habkost, 2016/06/20