Message ID | 20200225104223.30891-1-luca@lucaceresoli.net |
---|---|
State | Superseded, archived |
Headers | show |
Series | [DT-OVERLAY] of: overlay: print the offending node name on fixup failure | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | success |
Hi Luca, On Tue, Feb 25, 2020 at 11:42 AM Luca Ceresoli <luca@lucaceresoli.net> wrote: > When a DT overlay has a fixup node that is not present in the base DT > __symbols__, 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 that caused the problem. > > Add a debug print with the name of the fixup node that caused the > error. The new output is: > > OF: resolver: node gpio9 not found in base DT, fixup failed > OF: resolver: overlay phandle fixup failed: -22 > create_overlay: Failed to create overlay (err=-22) > > Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Thanks for your patch! Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> > NOTE: this patch is not for mainline! Why not? > It applies on top of the runtime overlay patches at > git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git on > branch topic/overlays, currently based on v5.6-rc1. This looked like the > most up-to-date version of the overlay patches. Should there be a better > place, please let me know. Topic/overlays does not contain any changes to drivers/of/resolver.c, so this patch is applicable to mainline, too. > --- 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 %s not found in base DT, fixup failed", > + prop->name); > goto out; > + } > > refnode = of_find_node_by_path(refpath); > if (!refnode) { Probably you want to print a helpful message here, too? Gr{oetje,eeting}s, Geert
Hi Geert, thanks for the very prompt review! On 25/02/20 12:10, Geert Uytterhoeven wrote: > Hi Luca, > > On Tue, Feb 25, 2020 at 11:42 AM Luca Ceresoli <luca@lucaceresoli.net> wrote: >> When a DT overlay has a fixup node that is not present in the base DT >> __symbols__, 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 that caused the problem. >> >> Add a debug print with the name of the fixup node that caused the >> error. The new output is: >> >> OF: resolver: node gpio9 not found in base DT, fixup failed >> OF: resolver: overlay phandle fixup failed: -22 >> create_overlay: Failed to create overlay (err=-22) >> >> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> > > Thanks for your patch! > > Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> > >> NOTE: this patch is not for mainline! > > Why not? Because I'm dumb. As I'm using the non-mainlined configfs interface I tend to consider the entire overlay code as non-mainlined too. Sending v2 without this comment. >> --- 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 %s not found in base DT, fixup failed", >> + prop->name); >> goto out; >> + } >> >> refnode = of_find_node_by_path(refpath); >> if (!refnode) { > > Probably you want to print a helpful message here, too? I'm doing even more. In v2 I added a specific error message for each error path that does not have one yet, and removed the generic message at the end.
diff --git a/drivers/of/resolver.c b/drivers/of/resolver.c index 83c766233181..ade817407b78 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 %s not found in base DT, fixup failed", + prop->name); goto out; + } refnode = of_find_node_by_path(refpath); if (!refnode) {
When a DT overlay has a fixup node that is not present in the base DT __symbols__, 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 that caused the problem. Add a debug print with the name of the fixup node that caused the error. The new output is: OF: resolver: node gpio9 not found in base DT, fixup failed OF: resolver: overlay phandle fixup failed: -22 create_overlay: Failed to create overlay (err=-22) Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> --- NOTE: this patch is not for mainline! It applies on top of the runtime overlay patches at git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git on branch topic/overlays, currently based on v5.6-rc1. This looked like the most up-to-date version of the overlay patches. Should there be a better place, please let me know. --- drivers/of/resolver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)