[U-Boot] [PATCH 1/2] libfdt: overlay: Fix missing symbols condition
Maxime Ripard
maxime.ripard at free-electrons.com
Fri Dec 16 10:32:53 CET 2016
On Thu, Dec 15, 2016 at 03:03:26PM -0800, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner at toradex.com>
>
> When there is no symbols section in the device tree,
> overlay_fixup_phandles should return FDT_ERR_NOTFOUND instead of
> FDT_ERR_BADOFFSET.
>
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> ---
>
> lib/libfdt/fdt_overlay.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/libfdt/fdt_overlay.c b/lib/libfdt/fdt_overlay.c
> index bb41404..4a9ba40 100644
> --- a/lib/libfdt/fdt_overlay.c
> +++ b/lib/libfdt/fdt_overlay.c
> @@ -495,9 +495,9 @@ static int overlay_fixup_phandles(void *fdt, void *fdto)
> if ((fixups_off < 0 && (fixups_off != -FDT_ERR_NOTFOUND)))
> return fixups_off;
>
> - /* And base DTs without symbols */
> + /* But if we need to fixup phandles, symbols are required */
> symbols_off = fdt_path_offset(fdt, "/__symbols__");
> - if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
> + if (symbols_off < 0)
> return symbols_off;
A base device tree doesn't need to have a symbols node. In the
(uncommon, true, but still real) case where you wouldn't have any
label in the base DT, __symbols__ wouldn't be there.
Now, that code would return an error only if there's such a reference
expressed in __fixups__, but no __symbols__ node that also has that
reference. This is definitely an error but not really a NOTFOUND. You
had an offset already, but this offset was bad. Hence the error.
Do you have a base DT and an overlay showing up the error you're
trying to fix? Either way, that should be discussed with upstream's
libfdt ml and maintainer, not (only) on U-Boot.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161216/57b1a34a/attachment.sig>
More information about the U-Boot
mailing list