diff mbox series

[04/36] qdev: Check dev->realized at set_size()

Message ID 20201029220246.472693-5-ehabkost@redhat.com
State New
Headers show
Series Make qdev static property API usable by any QOM type | expand

Commit Message

Eduardo Habkost Oct. 29, 2020, 10:02 p.m. UTC
This setter is one of the very few property setters that don't
check dev->realized, and there's no reason to make size
properties different from the rest.  Add the missing check.

Fixes: e8cd45c78f53 ("qdev: Add SIZE type to qdev properties")
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org
---
 hw/core/qdev-properties.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Marc-André Lureau Oct. 30, 2020, 7:11 a.m. UTC | #1
On Fri, Oct 30, 2020 at 2:06 AM Eduardo Habkost <ehabkost@redhat.com> wrote:

> This setter is one of the very few property setters that don't
> check dev->realized, and there's no reason to make size
> properties different from the rest.  Add the missing check.
>
> Fixes: e8cd45c78f53 ("qdev: Add SIZE type to qdev properties")
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>

Suitable for 5.2 imho (you should send/pr separately)

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

---
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: "Daniel P. Berrangé" <berrange@redhat.com>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: qemu-devel@nongnu.org
> ---
>  hw/core/qdev-properties.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
> index 12a053e732..67ae19df05 100644
> --- a/hw/core/qdev-properties.c
> +++ b/hw/core/qdev-properties.c
> @@ -905,6 +905,11 @@ static void set_size(Object *obj, Visitor *v, const
> char *name, void *opaque,
>      Property *prop = opaque;
>      uint64_t *ptr = qdev_get_prop_ptr(dev, prop);
>
> +    if (dev->realized) {
> +        qdev_prop_set_after_realize(dev, name, errp);
> +        return;
> +    }
> +
>      visit_type_size(v, name, ptr, errp);
>  }
>
> --
> 2.28.0
>
>
>
diff mbox series

Patch

diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 12a053e732..67ae19df05 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -905,6 +905,11 @@  static void set_size(Object *obj, Visitor *v, const char *name, void *opaque,
     Property *prop = opaque;
     uint64_t *ptr = qdev_get_prop_ptr(dev, prop);
 
+    if (dev->realized) {
+        qdev_prop_set_after_realize(dev, name, errp);
+        return;
+    }
+
     visit_type_size(v, name, ptr, errp);
 }