|
@@ -26,11 +26,11 @@ void qdev_prop_set_after_realize(DeviceState *dev, const char *name,
|
|
|
|
|
|
/* returns: true if property is allowed to be set, false otherwise */
|
|
/* returns: true if property is allowed to be set, false otherwise */
|
|
static bool qdev_prop_allow_set(Object *obj, const char *name,
|
|
static bool qdev_prop_allow_set(Object *obj, const char *name,
|
|
- Error **errp)
|
|
|
|
|
|
+ const PropertyInfo *info, Error **errp)
|
|
{
|
|
{
|
|
DeviceState *dev = DEVICE(obj);
|
|
DeviceState *dev = DEVICE(obj);
|
|
|
|
|
|
- if (dev->realized) {
|
|
|
|
|
|
+ if (dev->realized && !info->realized_set_allowed) {
|
|
qdev_prop_set_after_realize(dev, name, errp);
|
|
qdev_prop_set_after_realize(dev, name, errp);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
@@ -79,7 +79,7 @@ static void field_prop_set(Object *obj, Visitor *v, const char *name,
|
|
{
|
|
{
|
|
Property *prop = opaque;
|
|
Property *prop = opaque;
|
|
|
|
|
|
- if (!qdev_prop_allow_set(obj, name, errp)) {
|
|
|
|
|
|
+ if (!qdev_prop_allow_set(obj, name, prop->info, errp)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|