|
@@ -488,20 +488,30 @@ static int build_changeset(struct overlay_changeset *ovcs)
|
|
|
*/
|
|
|
static struct device_node *find_target_node(struct device_node *info_node)
|
|
|
{
|
|
|
+ struct device_node *node;
|
|
|
const char *path;
|
|
|
u32 val;
|
|
|
int ret;
|
|
|
|
|
|
ret = of_property_read_u32(info_node, "target", &val);
|
|
|
- if (!ret)
|
|
|
- return of_find_node_by_phandle(val);
|
|
|
+ if (!ret) {
|
|
|
+ node = of_find_node_by_phandle(val);
|
|
|
+ if (!node)
|
|
|
+ pr_err("find target, node: %pOF, phandle 0x%x not found\n",
|
|
|
+ info_node, val);
|
|
|
+ return node;
|
|
|
+ }
|
|
|
|
|
|
ret = of_property_read_string(info_node, "target-path", &path);
|
|
|
- if (!ret)
|
|
|
- return of_find_node_by_path(path);
|
|
|
+ if (!ret) {
|
|
|
+ node = of_find_node_by_path(path);
|
|
|
+ if (!node)
|
|
|
+ pr_err("find target, node: %pOF, path '%s' not found\n",
|
|
|
+ info_node, path);
|
|
|
+ return node;
|
|
|
+ }
|
|
|
|
|
|
- pr_err("Failed to find target for node %p (%s)\n",
|
|
|
- info_node, info_node->name);
|
|
|
+ pr_err("find target, node: %pOF, no target property\n", info_node);
|
|
|
|
|
|
return NULL;
|
|
|
}
|