]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dm: core: Fix offset_to_ofnode() with invalid offset
authorSimon Glass <sjg@chromium.org>
Sat, 7 Dec 2019 04:41:36 +0000 (21:41 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sun, 15 Dec 2019 00:52:29 +0000 (08:52 +0800)
If the offset is -1 this function correctly sets up a null ofnode. But if
the offset is any other negative number (e.g. -FDT_ERR_BADPATH) then it
does the wrong thing.

An offset of -1 in ofnode indicates that the ofnode is not valid. Any
other negative value is not handled by ofnode_valid(). We could of course
change that function, but it seems much better to always use the same
value for an invalid node.

Fix it by setting the offset to -1 if it is invalid for any reason.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
include/dm/ofnode.h

index 5c4cbf09986922cace122a66110f55cbd93b6c93..4282169706c112eac434df7a9f3a572485974220 100644 (file)
@@ -118,7 +118,7 @@ static inline ofnode offset_to_ofnode(int of_offset)
        if (of_live_active())
                node.np = NULL;
        else
-               node.of_offset = of_offset;
+               node.of_offset = of_offset >= 0 ? of_offset : -1;
 
        return node;
 }