At present this does not work with livetree. Fix it and add a test. Signed-off-by: Simon Glass <s...@chromium.org> ---
(no changes since v1) drivers/core/of_access.c | 8 ++++---- test/dm/ofnode.c | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c index 8306d69eed0..85716ac621b 100644 --- a/drivers/core/of_access.c +++ b/drivers/core/of_access.c @@ -909,9 +909,6 @@ int of_write_prop(struct device_node *np, const char *propname, int len, pp_last = pp; } - if (!pp_last) - return -ENOENT; - /* Property does not exist -> append new property */ new = malloc(sizeof(struct property)); if (!new) @@ -927,7 +924,10 @@ int of_write_prop(struct device_node *np, const char *propname, int len, new->length = len; new->next = NULL; - pp_last->next = new; + if (pp_last) + pp_last->next = new; + else + np->properties = new; return 0; } diff --git a/test/dm/ofnode.c b/test/dm/ofnode.c index 543dc546b95..0f65ff939fb 100644 --- a/test/dm/ofnode.c +++ b/test/dm/ofnode.c @@ -672,6 +672,9 @@ static int dm_test_ofnode_add_subnode(struct unit_test_state *uts) malloc_disable_testing(); } + /* write to the empty node */ + ut_assertok(ofnode_write_string(subnode, "example", "text")); + return 0; } DM_TEST(dm_test_ofnode_add_subnode, -- 2.37.2.789.g6183377224-goog