diff mbox series

[v3] of: overlay: log the error cause on resolver failure

Message ID 20200228084027.10797-1-luca@lucaceresoli.net
State Accepted, archived
Headers show
Series [v3] of: overlay: log the error cause on resolver failure | expand

Checks

Context Check Description
robh/checkpatch warning "total: 0 errors, 1 warnings, 12 lines checked"

Commit Message

Luca Ceresoli Feb. 28, 2020, 8:40 a.m. UTC
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>

---

Changed in v3:
 - add only the message from v1, but as reworded by Frank

Changed in v2:
 - add a message for each error path that does not have one yet
---
 drivers/of/resolver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Frank Rowand Feb. 28, 2020, 2:28 p.m. UTC | #1
On 2/28/20 2:40 AM, Luca Ceresoli wrote:
> 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>

Thanks Luca, looks good.

Reviewed-by: Frank Rowand <frank.rowand@sony.com>

-Frank


> 
> ---
> 
> Changed in v3:
>  - add only the message from v1, but as reworded by Frank
> 
> Changed in v2:
>  - add a message for each error path that does not have one yet
> ---
>  drivers/of/resolver.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/of/resolver.c b/drivers/of/resolver.c
> index 83c766233181..b278ab4338ce 100644
> --- a/drivers/of/resolver.c
> +++ b/drivers/of/resolver.c
> @@ -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) {
>
Geert Uytterhoeven March 2, 2020, 4:06 p.m. UTC | #2
On Fri, Feb 28, 2020 at 9:40 AM Luca Ceresoli <luca@lucaceresoli.net> wrote:
> 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: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert
Rob Herring March 2, 2020, 5:31 p.m. UTC | #3
On Fri, 28 Feb 2020 09:40:27 +0100, Luca Ceresoli wrote:
> 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>
> 
> ---
> 
> Changed in v3:
>  - add only the message from v1, but as reworded by Frank
> 
> Changed in v2:
>  - add a message for each error path that does not have one yet
> ---
>  drivers/of/resolver.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 

Applied, thanks.

Rob
diff mbox series

Patch

diff --git a/drivers/of/resolver.c b/drivers/of/resolver.c
index 83c766233181..b278ab4338ce 100644
--- a/drivers/of/resolver.c
+++ b/drivers/of/resolver.c
@@ -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) {