summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/boot/libfdt/fdt_ro.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-11-20 09:02:39 +0100
committerIngo Molnar <mingo@elte.hu>2008-11-20 09:02:39 +0100
commitfbc2a06056c9aa3cb8c44bf1cfeb1d260e229e5c (patch)
treefeb2a1c13ad3dff5a8c7ab3c0265e8eca7a0c5a3 /arch/powerpc/boot/libfdt/fdt_ro.c
parenta3d732f93785da17e0137210deadb4616f5536fc (diff)
parentee2f6cc7f9ea2542ad46070ed62ba7aa04d08871 (diff)
Merge branch 'linus' into x86/uv
Diffstat (limited to 'arch/powerpc/boot/libfdt/fdt_ro.c')
-rw-r--r--arch/powerpc/boot/libfdt/fdt_ro.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/powerpc/boot/libfdt/fdt_ro.c b/arch/powerpc/boot/libfdt/fdt_ro.c
index 129b532bcc1..fbbba44fcd0 100644
--- a/arch/powerpc/boot/libfdt/fdt_ro.c
+++ b/arch/powerpc/boot/libfdt/fdt_ro.c
@@ -104,8 +104,8 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
FDT_CHECK_HEADER(fdt);
- for (depth = 0;
- offset >= 0;
+ for (depth = 0, offset = fdt_next_node(fdt, offset, &depth);
+ (offset >= 0) && (depth > 0);
offset = fdt_next_node(fdt, offset, &depth)) {
if (depth < 0)
return -FDT_ERR_NOTFOUND;
@@ -114,7 +114,10 @@ int fdt_subnode_offset_namelen(const void *fdt, int offset,
return offset;
}
- return offset; /* error */
+ if (offset < 0)
+ return offset; /* error */
+ else
+ return -FDT_ERR_NOTFOUND;
}
int fdt_subnode_offset(const void *fdt, int parentoffset,