aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-07-24 09:27:27 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-10-14 16:41:40 +1100
commit8110b0595f0de2df18a06e8e9aff66db45872fa7 (patch)
treeff54e7925858b8eca4b87773247b54b34e0fa8bb
parentbdd34cca13be8ac075657b3981f6db91f7dab0ae (diff)
downloadskiboot-8110b0595f0de2df18a06e8e9aff66db45872fa7.zip
skiboot-8110b0595f0de2df18a06e8e9aff66db45872fa7.tar.gz
skiboot-8110b0595f0de2df18a06e8e9aff66db45872fa7.tar.bz2
device: Add helper to delete a property by name if it exists
This will be useful for fast reboot which needs to clean a few things up. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--core/device.c8
-rw-r--r--include/device.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/core/device.c b/core/device.c
index 4fa6a38..63b5df8 100644
--- a/core/device.c
+++ b/core/device.c
@@ -581,6 +581,14 @@ const struct dt_property *dt_find_property(const struct dt_node *node,
return NULL;
}
+void dt_check_del_prop(struct dt_node *node, const char *name)
+{
+ struct dt_property *p;
+
+ p = __dt_find_property(node, name);
+ if (p)
+ dt_del_property(node, p);
+}
const struct dt_property *dt_require_property(const struct dt_node *node,
const char *name, int wanted_len)
{
diff --git a/include/device.h b/include/device.h
index ed4fc46..4198a41 100644
--- a/include/device.h
+++ b/include/device.h
@@ -119,6 +119,8 @@ static inline struct dt_property *dt_add_property_u64(struct dt_node *node,
void dt_del_property(struct dt_node *node, struct dt_property *prop);
+void dt_check_del_prop(struct dt_node *node, const char *name);
+
/* Warning: moves *prop! */
void dt_resize_property(struct dt_property **prop, size_t len);