of: overlay: log the error cause on resolver failure
authorLuca Ceresoli <luca@lucaceresoli.net>
Fri, 28 Feb 2020 08:40:27 +0000 (09:40 +0100)
committerRob Herring <robh@kernel.org>
Mon, 2 Mar 2020 17:32:44 +0000 (11:32 -0600)
When a DT overlay has a node label that is not present in the live
devicetree symbols table, this error is printed:

  OF: resolver: overlay phandle fixup failed: -22
  create_overlay: Failed to create overlay (err=-22)

which does not help much in finding the node label that caused the problem
and fix the overlay source.

Add an error message with the name of the node label that caused the
error. The new output is:

  OF: resolver: node label 'gpio9' not found in live devicetree symbols table
  OF: resolver: overlay phandle fixup failed: -22
  create_overlay: Failed to create overlay (err=-22)

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: Frank Rowand <frank.rowand@sony.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/resolver.c

index 83c766233181096887f7d4a204214012b8223166..b278ab4338ceb5ea16723daa00b6b7d51cc5f7aa 100644 (file)
@@ -321,8 +321,11 @@ int of_resolve_phandles(struct device_node *overlay)
 
                err = of_property_read_string(tree_symbols,
                                prop->name, &refpath);
-               if (err)
+               if (err) {
+                       pr_err("node label '%s' not found in live devicetree symbols table\n",
+                              prop->name);
                        goto out;
+               }
 
                refnode = of_find_node_by_path(refpath);
                if (!refnode) {