diff mbox series

[RFC,v2,05/12] hw/qdev: Remove opts member

Message ID 20231210-sriov-v2-5-b959e8a6dfaf@daynix.com
State New
Headers show
Series virtio-net: add support for SR-IOV emulation | expand

Commit Message

Akihiko Odaki Dec. 10, 2023, 4:05 a.m. UTC
It is no longer used.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 include/hw/qdev-core.h |  4 ----
 hw/core/qdev.c         |  1 -
 system/qdev-monitor.c  | 12 +++++++-----
 3 files changed, 7 insertions(+), 10 deletions(-)

Comments

Philippe Mathieu-Daudé Dec. 12, 2023, 10:04 a.m. UTC | #1
On 10/12/23 05:05, Akihiko Odaki wrote:
> It is no longer used.

Since commit f3558b1b76 ("qdev: Base object creation on QDict rather
than QemuOpts")?

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> ---
>   include/hw/qdev-core.h |  4 ----
>   hw/core/qdev.c         |  1 -
>   system/qdev-monitor.c  | 12 +++++++-----
>   3 files changed, 7 insertions(+), 10 deletions(-)
> 
> diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
> index 151d968238..6befbca311 100644
> --- a/include/hw/qdev-core.h
> +++ b/include/hw/qdev-core.h
> @@ -237,10 +237,6 @@ struct DeviceState {
>        * @pending_deleted_expires_ms: optional timeout for deletion events
>        */
>       int64_t pending_deleted_expires_ms;
> -    /**
> -     * @opts: QDict of options for the device
> -     */
> -    QDict *opts;
>       /**
>        * @hotplugged: was device added after PHASE_MACHINE_READY?
>        */
> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> index 43d863b0c5..c98691a90d 100644
> --- a/hw/core/qdev.c
> +++ b/hw/core/qdev.c
> @@ -706,7 +706,6 @@ static void device_finalize(Object *obj)
>           dev->canonical_path = NULL;
>       }
>   
> -    qobject_unref(dev->opts);
>       g_free(dev->id);
>   }
>   
> diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c
> index a13db763e5..71c00f62ee 100644
> --- a/system/qdev-monitor.c
> +++ b/system/qdev-monitor.c
> @@ -625,6 +625,7 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,
>       char *id;
>       DeviceState *dev = NULL;
>       BusState *bus = NULL;
> +    QDict *properties;
>   
>       driver = qdict_get_try_str(opts, "driver");
>       if (!driver) {
> @@ -705,13 +706,14 @@ DeviceState *qdev_device_add_from_qdict(const QDict *opts,
>       }
>   
>       /* set properties */
> -    dev->opts = qdict_clone_shallow(opts);
> -    qdict_del(dev->opts, "driver");
> -    qdict_del(dev->opts, "bus");
> -    qdict_del(dev->opts, "id");
> +    properties = qdict_clone_shallow(opts);
> +    qdict_del(properties, "driver");
> +    qdict_del(properties, "bus");
> +    qdict_del(properties, "id");
>   
> -    object_set_properties_from_keyval(&dev->parent_obj, dev->opts, from_json,
> +    object_set_properties_from_keyval(&dev->parent_obj, properties, from_json,
>                                         errp);
> +    qobject_unref(properties);
>       if (*errp) {
>           goto err_del_dev;
>       }
>
Akihiko Odaki Dec. 12, 2023, 11:15 a.m. UTC | #2
On 2023/12/12 19:04, Philippe Mathieu-Daudé wrote:
> On 10/12/23 05:05, Akihiko Odaki wrote:
>> It is no longer used.
> 
> Since commit f3558b1b76 ("qdev: Base object creation on QDict rather
> than QemuOpts")?

One usage still remains and it will be removed with an earlier patch, 
"[PATCH RFC v2 04/12] vfio: Avoid inspecting option QDict for rombar".
diff mbox series

Patch

diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 151d968238..6befbca311 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -237,10 +237,6 @@  struct DeviceState {
      * @pending_deleted_expires_ms: optional timeout for deletion events
      */
     int64_t pending_deleted_expires_ms;
-    /**
-     * @opts: QDict of options for the device
-     */
-    QDict *opts;
     /**
      * @hotplugged: was device added after PHASE_MACHINE_READY?
      */
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 43d863b0c5..c98691a90d 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -706,7 +706,6 @@  static void device_finalize(Object *obj)
         dev->canonical_path = NULL;
     }
 
-    qobject_unref(dev->opts);
     g_free(dev->id);
 }
 
diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c
index a13db763e5..71c00f62ee 100644
--- a/system/qdev-monitor.c
+++ b/system/qdev-monitor.c
@@ -625,6 +625,7 @@  DeviceState *qdev_device_add_from_qdict(const QDict *opts,
     char *id;
     DeviceState *dev = NULL;
     BusState *bus = NULL;
+    QDict *properties;
 
     driver = qdict_get_try_str(opts, "driver");
     if (!driver) {
@@ -705,13 +706,14 @@  DeviceState *qdev_device_add_from_qdict(const QDict *opts,
     }
 
     /* set properties */
-    dev->opts = qdict_clone_shallow(opts);
-    qdict_del(dev->opts, "driver");
-    qdict_del(dev->opts, "bus");
-    qdict_del(dev->opts, "id");
+    properties = qdict_clone_shallow(opts);
+    qdict_del(properties, "driver");
+    qdict_del(properties, "bus");
+    qdict_del(properties, "id");
 
-    object_set_properties_from_keyval(&dev->parent_obj, dev->opts, from_json,
+    object_set_properties_from_keyval(&dev->parent_obj, properties, from_json,
                                       errp);
+    qobject_unref(properties);
     if (*errp) {
         goto err_del_dev;
     }