From d88577e80f756b4a5e4d8b604514233fa0a72637 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 30 Oct 2008 16:37:05 +0000 Subject: [PATCH] --- yaml --- r: 118279 b: refs/heads/master c: 2dccbf4ea05d2c3603b8c1359019bf7148a316a5 h: refs/heads/master i: 118277: 09ae73a3f98fbee38f006d61c5d610a74924c127 118275: a36f03847433fdc12cfc9b2a30cf94451895a285 118271: 60355098a39bb53d4505c47ce80321abeff812e5 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/boot/libfdt/fdt_ro.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 7268f51b382a..cb04bc17c383 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 210434d7633d477aa503454d68511fa2904e418e +refs/heads/master: 2dccbf4ea05d2c3603b8c1359019bf7148a316a5 diff --git a/trunk/arch/powerpc/boot/libfdt/fdt_ro.c b/trunk/arch/powerpc/boot/libfdt/fdt_ro.c index 129b532bcc1a..fbbba44fcd0d 100644 --- a/trunk/arch/powerpc/boot/libfdt/fdt_ro.c +++ b/trunk/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,