qdev-props: call object_apply_global_props()
It's now possible to use the common function. Teach object_apply_global_props() to warn if Error argument is NULL. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
cff8b715c0
commit
50545b2cc0
@ -1223,28 +1223,8 @@ int qdev_prop_check_globals(void)
|
|||||||
|
|
||||||
void qdev_prop_set_globals(DeviceState *dev)
|
void qdev_prop_set_globals(DeviceState *dev)
|
||||||
{
|
{
|
||||||
int i;
|
object_apply_global_props(OBJECT(dev), global_props(),
|
||||||
|
dev->hotplugged ? NULL : &error_fatal);
|
||||||
for (i = 0; i < global_props()->len; i++) {
|
|
||||||
GlobalProperty *prop;
|
|
||||||
Error *err = NULL;
|
|
||||||
|
|
||||||
prop = g_ptr_array_index(global_props(), i);
|
|
||||||
if (object_dynamic_cast(OBJECT(dev), prop->driver) == NULL) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
prop->used = true;
|
|
||||||
object_property_parse(OBJECT(dev), prop->value, prop->property, &err);
|
|
||||||
if (err != NULL) {
|
|
||||||
error_prepend(&err, "can't apply global %s.%s=%s: ",
|
|
||||||
prop->driver, prop->property, prop->value);
|
|
||||||
if (!dev->hotplugged) {
|
|
||||||
error_propagate(&error_fatal, err);
|
|
||||||
} else {
|
|
||||||
warn_report_err(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- 64bit unsigned int 'size' type --- */
|
/* --- 64bit unsigned int 'size' type --- */
|
||||||
|
12
qom/object.c
12
qom/object.c
@ -390,7 +390,17 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp
|
|||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
error_prepend(&err, "can't apply global %s.%s=%s: ",
|
error_prepend(&err, "can't apply global %s.%s=%s: ",
|
||||||
p->driver, p->property, p->value);
|
p->driver, p->property, p->value);
|
||||||
error_propagate(errp, err);
|
/*
|
||||||
|
* If errp != NULL, propagate error and return.
|
||||||
|
* If errp == NULL, report a warning, but keep going
|
||||||
|
* with the remaining globals.
|
||||||
|
*/
|
||||||
|
if (errp) {
|
||||||
|
error_propagate(errp, err);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
warn_report_err(err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user