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 = "<NULL>";
- if (!np->type)
- np->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);
- if (phandle && (sz >= 4))
- np->phandle = be32_to_cpup(phandle);
- else
- np->phandle = 0;
- }
+ np->name = __of_get_property(np, "name", NULL) ? : "<NULL>";
+ np->type = __of_get_property(np, "device_type", NULL) ? : "<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;
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);
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);
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);
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 = "<NULL>";
- if (!tchild->type)
- tchild->type = "<NULL>";
-
- /* 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);