[Qemu-devel] [PATCH v2 2/2] Revert "globals: Allow global properties to be optional"

Daniel P. Berrangé posted 2 patches 6 years, 11 months ago
Maintainers: Gonglei <arei.gonglei@huawei.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Andreas Färber" <afaerber@suse.de>, Gerd Hoffmann <kraxel@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>
[Qemu-devel] [PATCH v2 2/2] Revert "globals: Allow global properties to be optional"
Posted by Daniel P. Berrangé 6 years, 11 months ago
This reverts commit d7741743f4f3d2683d1bb6938f88dc0167c21afa.

Relying on setting properties on parents types which may not
be relevant to certain sub-classes had unexpected side-effects
causing bugs in device config defaults. It is preferrable to
be explicit about which devices get which properties, even if
this needs repetition.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 include/hw/qdev-core.h | 3 ---
 qom/object.c           | 3 ---
 2 files changed, 6 deletions(-)

diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 0a84c42756..9614f76ae6 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -250,8 +250,6 @@ struct PropertyInfo {
 /**
  * GlobalProperty:
  * @used: Set to true if property was used when initializing a device.
- * @optional: If set to true, GlobalProperty will be skipped without errors
- *            if the property doesn't exist.
  *
  * An error is fatal for non-hotplugged devices, when the global is applied.
  */
@@ -260,7 +258,6 @@ typedef struct GlobalProperty {
     const char *property;
     const char *value;
     bool used;
-    bool optional;
 } GlobalProperty;
 
 static inline void
diff --git a/qom/object.c b/qom/object.c
index b8c732063b..4e5226ca12 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -385,9 +385,6 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp
         if (object_dynamic_cast(obj, p->driver) == NULL) {
             continue;
         }
-        if (p->optional && !object_property_find(obj, p->property, NULL)) {
-            continue;
-        }
         p->used = true;
         object_property_parse(obj, p->value, p->property, &err);
         if (err != NULL) {
-- 
2.20.1


Re: [Qemu-devel] [PATCH v2 2/2] Revert "globals: Allow global properties to be optional"
Posted by Eduardo Habkost 6 years, 8 months ago
On Fri, Feb 15, 2019 at 10:32:39AM +0000, Daniel P. Berrangé wrote:
> This reverts commit d7741743f4f3d2683d1bb6938f88dc0167c21afa.
> 
> Relying on setting properties on parents types which may not
> be relevant to certain sub-classes had unexpected side-effects
> causing bugs in device config defaults. It is preferrable to
> be explicit about which devices get which properties, even if
> this needs repetition.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

-- 
Eduardo