of: Make sure attached nodes don't carry along extra children
authorGrant Likely <grant.likely@linaro.org>
Wed, 16 Jul 2014 14:48:46 +0000 (08:48 -0600)
committerGrant Likely <grant.likely@linaro.org>
Wed, 23 Jul 2014 23:05:45 +0000 (17:05 -0600)
The child pointer does not get cleared when attaching new nodes which
could cause the tree to be inconsistent. Clear the child pointer in
__of_attach_node() to be absolutely sure that the structure remains in a
consistent layout.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
drivers/of/dynamic.c

index c875787..b96d831 100644 (file)
@@ -98,6 +98,7 @@ int of_property_notify(int action, struct device_node *np,
 
 void __of_attach_node(struct device_node *np)
 {
+       np->child = NULL;
        np->sibling = np->parent->child;
        np->allnext = np->parent->allnext;
        np->parent->allnext = np;