diff mbox series

[v2,2/2] Revert "globals: Allow global properties to be optional"

Message ID 20190215103239.28640-3-berrange@redhat.com (mailing list archive)
State New, archived
Headers show
Series hw: provide error checking of disable-legacy/modern property usage | expand

Commit Message

Daniel P. Berrangé Feb. 15, 2019, 10:32 a.m. UTC
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(-)

Comments

Eduardo Habkost May 20, 2019, 9 p.m. UTC | #1
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>
diff mbox series

Patch

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) {