From 6b45ec4c1518201aed352f9c9a852613adfd6efb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 10 Jun 2019 15:07:26 +0100 Subject: [PATCH] Revert "of: overlay: set node fields from properties when add new overlay node" This reverts commit 8bff48328aff10c1e9c134a55337620929e449c2. --- drivers/of/dynamic.c | 27 +++++++++------------------ drivers/of/overlay.c | 34 +++++++--------------------------- 2 files changed, 16 insertions(+), 45 deletions(-) diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index a09c1c3..45c0b1f 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -205,24 +205,15 @@ static void __of_attach_node(struct device_node *np) const __be32 *phandle; int sz; - if (!of_node_check_flag(np, OF_OVERLAY)) { - np->name = __of_get_property(np, "name", NULL); - np->type = __of_get_property(np, "device_type", NULL); - if (!np->name) - np->name = ""; - if (!np->type) - np->type = ""; - - phandle = __of_get_property(np, "phandle", &sz); - if (!phandle) - phandle = __of_get_property(np, "linux,phandle", &sz); - if (IS_ENABLED(CONFIG_PPC_PSERIES) && !phandle) - phandle = __of_get_property(np, "ibm,phandle", &sz); - if (phandle && (sz >= 4)) - np->phandle = be32_to_cpup(phandle); - else - np->phandle = 0; - } + np->name = __of_get_property(np, "name", NULL) ? : ""; + np->type = __of_get_property(np, "device_type", NULL) ? : ""; + + phandle = __of_get_property(np, "phandle", &sz); + if (!phandle) + phandle = __of_get_property(np, "linux,phandle", &sz); + if (IS_ENABLED(CONFIG_PPC_PSERIES) && !phandle) + phandle = __of_get_property(np, "ibm,phandle", &sz); + np->phandle = (phandle && (sz >= 4)) ? be32_to_cpup(phandle) : 0; np->child = NULL; np->sibling = np->parent->child; diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c index b2704ba..9808aae 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c @@ -301,11 +301,10 @@ static int add_changeset_property(struct overlay_changeset *ovcs, struct property *new_prop = NULL, *prop; int ret = 0; - if (target->in_livetree) - if (!of_prop_cmp(overlay_prop->name, "name") || - !of_prop_cmp(overlay_prop->name, "phandle") || - !of_prop_cmp(overlay_prop->name, "linux,phandle")) - return 0; + if (!of_prop_cmp(overlay_prop->name, "name") || + !of_prop_cmp(overlay_prop->name, "phandle") || + !of_prop_cmp(overlay_prop->name, "linux,phandle")) + return 0; if (target->in_livetree) prop = of_find_property(target->np, overlay_prop->name, NULL); @@ -323,17 +322,12 @@ static int add_changeset_property(struct overlay_changeset *ovcs, if (!new_prop) return -ENOMEM; - if (!prop) { - if (!target->in_livetree) { - new_prop->next = target->np->deadprops; - target->np->deadprops = new_prop; - } + if (!prop) ret = of_changeset_add_property(&ovcs->cset, target->np, new_prop); - } else { + else ret = of_changeset_update_property(&ovcs->cset, target->np, new_prop); - } if (ret) { kfree(new_prop->name); @@ -388,10 +382,9 @@ static int add_changeset_node(struct overlay_changeset *ovcs, struct target *target, struct device_node *node) { const char *node_kbasename; - const __be32 *phandle; struct device_node *tchild; struct target target_child; - int ret = 0, size; + int ret = 0; node_kbasename = kbasename(node->full_name); @@ -405,19 +398,6 @@ static int add_changeset_node(struct overlay_changeset *ovcs, return -ENOMEM; tchild->parent = target->np; - tchild->name = __of_get_property(node, "name", NULL); - tchild->type = __of_get_property(node, "device_type", NULL); - - if (!tchild->name) - tchild->name = ""; - if (!tchild->type) - tchild->type = ""; - - /* ignore obsolete "linux,phandle" */ - phandle = __of_get_property(node, "phandle", &size); - if (phandle && (size == 4)) - tchild->phandle = be32_to_cpup(phandle); - of_node_set_flag(tchild, OF_OVERLAY); ret = of_changeset_attach_node(&ovcs->cset, tchild); -- 2.7.4