[PATCH 3/3] OF: base: add empty property value pointer
Sebastian Hesselbarth
sebastian.hesselbarth at gmail.com
Fri Jun 21 11:15:18 EDT 2013
Since property values can be empty, we need property value pointer to
be non-NULL to distinguish those properties from non-existing properties.
This adds a static u32 to which empty properties set their value pointer.
Also, the value memory is only freed, if property length is not zero.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
---
Cc: barebox at lists.infradead.org
---
drivers/of/base.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 7926d5d..a100a17 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1501,6 +1501,8 @@ struct device_node *of_new_node(struct device_node *parent, const char *name)
return node;
}
+static u32 empty_prop_value;
+
struct property *of_new_property(struct device_node *node, const char *name,
const void *data, int len)
{
@@ -1515,6 +1517,7 @@ struct property *of_new_property(struct device_node *node, const char *name,
goto bail_out;
prop->length = len;
+ prop->value = &empty_prop_value;
if (len) {
prop->value = xzalloc(len);
if (!prop->value)
@@ -1541,7 +1544,8 @@ void of_delete_property(struct property *pp)
list_del(&pp->list);
free(pp->name);
- free(pp->value);
+ if (pp->length)
+ free(pp->value);
free(pp);
}
--
1.7.2.5
More information about the barebox
mailing list