diff mbox series

[v6,003/102] dm: core: Fix offset_to_ofnode() with invalid offset

Message ID 20191206213936.v6.3.Idd33327507b1e9fbd348a5424bb3f627ab9f78c7@changeid
State Accepted
Commit b14c53398683952723540f82027fb0cbfba4f7de
Delegated to: Bin Meng
Headers show
Series x86: Add initial support for apollolake | expand

Commit Message

Simon Glass Dec. 7, 2019, 4:41 a.m. UTC
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>
---

Changes in v6: None
Changes in v5: None
Changes in v4:
- Update the commit message to be clearer, fix 'correct' typo

Changes in v3: None
Changes in v2: None

 include/dm/ofnode.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bin Meng Dec. 8, 2019, 1:08 a.m. UTC | #1
On Sat, Dec 7, 2019 at 12:45 PM Simon Glass <sjg@chromium.org> wrote:
>
> 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>
> ---
>
> Changes in v6: None
> Changes in v5: None
> Changes in v4:
> - Update the commit message to be clearer, fix 'correct' typo
>
> Changes in v3: None
> Changes in v2: None
>
>  include/dm/ofnode.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>

applied to u-boot-x86/next, thanks!
diff mbox series

Patch

diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 5c4cbf0998..4282169706 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -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;
 }