From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60202) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRGpB-0005Jy-Th for qemu-devel@nongnu.org; Mon, 26 Nov 2018 08:21:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRGp6-0008Ni-T8 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 08:21:17 -0500 Date: Mon, 26 Nov 2018 14:20:46 +0100 From: Igor Mammedov Message-ID: <20181126142046.07c5e227@redhat.com> In-Reply-To: <20181107123652.23417-11-marcandre.lureau@redhat.com> References: <20181107123652.23417-1-marcandre.lureau@redhat.com> <20181107123652.23417-11-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH for-3.2 v3 10/14] qdev-props: call object_apply_global_props() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Cc: qemu-devel@nongnu.org, Paolo Bonzini , dgilbert@redhat.com, Richard Henderson , Andreas =?UTF-8?B?RsOkcmJlcg==?= , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Artyom Tarasenko , Anthony Perard , Mark Cave-Ayland , Eduardo Habkost , Amit Shah , Stefan Berger , Marcel Apfelbaum , Stefano Stabellini , "Michael S. Tsirkin" , qemu-ppc@nongnu.org, Peter Maydell , Corey Minyard , =?UTF-8?B?SGVydsOp?= Poussineau On Wed, 7 Nov 2018 16:36:48 +0400 Marc-Andr=C3=A9 Lureau wrote: > It's now possible to use the common function. >=20 > Teach object_apply_global_props() to warn if Error argument is NULL. >=20 > Signed-off-by: Marc-Andr=C3=A9 Lureau > --- > hw/core/qdev-properties.c | 24 ++---------------------- > qom/object.c | 6 +++++- > 2 files changed, 7 insertions(+), 23 deletions(-) >=20 > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > index 8728cbab9f..239535a4cb 100644 > --- a/hw/core/qdev-properties.c > +++ b/hw/core/qdev-properties.c > @@ -1223,28 +1223,8 @@ int qdev_prop_check_globals(void) > =20 > void qdev_prop_set_globals(DeviceState *dev) > { > - int i; > - > - for (i =3D 0; i < global_props()->len; i++) { > - GlobalProperty *prop; > - Error *err =3D NULL; > - > - prop =3D g_array_index(global_props(), GlobalProperty *, i); > - if (object_dynamic_cast(OBJECT(dev), prop->driver) =3D=3D NULL) { > - continue; > - } > - prop->used =3D true; > - object_property_parse(OBJECT(dev), prop->value, prop->property, = &err); > - if (err !=3D NULL) { > - error_prepend(&err, "can't apply global %s.%s=3D%s: ", > - prop->driver, prop->property, prop->value); > - if (!dev->hotplugged) { > - error_propagate(&error_fatal, err); > - } else { > - warn_report_err(err); > - } > - } > - } > + object_apply_global_props(OBJECT(dev), global_props(), > + dev->hotplugged ? NULL : &error_fatal); arguably, it's up to caller to decide it warn or not. I'd leave it warning code out of object_apply_global_props() and let caller= do the job > } > =20 > /* --- 64bit unsigned int 'size' type --- */ > diff --git a/qom/object.c b/qom/object.c > index 9acdf9e16d..b1a7f70550 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -392,7 +392,11 @@ void object_apply_global_props(Object *obj, GArray *= props, Error **errp) > if (err !=3D NULL) { > error_prepend(&err, "can't apply global %s.%s=3D%s: ", > p->driver, p->property, p->value); > - error_propagate(errp, err); > + if (errp) { > + error_propagate(errp, err); > + } else { > + warn_report_err(err); > + } > } > } > }