All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] fdt: check for fdt errors in fdt_create_phandle
@ 2011-09-20 23:24 Timur Tabi
  2011-09-20 23:24 ` [U-Boot] [PATCH 2/3] fdt: update fdt_alloc_phandle to use fdt_get_phandle Timur Tabi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Timur Tabi @ 2011-09-20 23:24 UTC (permalink / raw)
  To: u-boot

fdt_create_phandle() was ignoring errors from fdt_set_phandle().  If an
error occurs, print an error message and return 0, which is an invalid
phandle.  We also need to change the return type for fdt_create_phandle()
to indicate that it cannot return an error code.

Signed-off-by: Timur Tabi <timur@freescale.com>
---
 common/fdt_support.c  |   11 +++++++++--
 include/fdt_support.h |    2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 46aa842..698abf7 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1241,15 +1241,22 @@ int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle)
  * @fdt: ptr to device tree
  * @nodeoffset: node to update
  */
-int fdt_create_phandle(void *fdt, int nodeoffset)
+unsigned int fdt_create_phandle(void *fdt, int nodeoffset)
 {
 	/* see if there is a phandle already */
 	int phandle = fdt_get_phandle(fdt, nodeoffset);
 
 	/* if we got 0, means no phandle so create one */
 	if (phandle == 0) {
+		int ret;
+
 		phandle = fdt_alloc_phandle(fdt);
-		fdt_set_phandle(fdt, nodeoffset, phandle);
+		ret = fdt_set_phandle(fdt, nodeoffset, phandle);
+		if (ret < 0) {
+			printf("Can't set phandle %u: %s\n", phandle,
+			       fdt_strerror(ret));
+			return 0;
+		}
 	}
 
 	return phandle;
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 8f06aac..7206c56 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -90,7 +90,7 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 					phys_addr_t compat_off);
 int fdt_alloc_phandle(void *blob);
 int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle);
-int fdt_create_phandle(void *fdt, int nodeoffset);
+unsigned int fdt_create_phandle(void *fdt, int nodeoffset);
 int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);
 
 int fdt_verify_alias_address(void *fdt, int anode, const char *alias,
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-10-15 15:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-20 23:24 [U-Boot] [PATCH 1/3] fdt: check for fdt errors in fdt_create_phandle Timur Tabi
2011-09-20 23:24 ` [U-Boot] [PATCH 2/3] fdt: update fdt_alloc_phandle to use fdt_get_phandle Timur Tabi
2011-09-20 23:24 ` [U-Boot] [PATCH 3/3] powerpc/85xx: use fdt_create_phandle() to create the Fman firmware phandles Timur Tabi
2011-10-15 15:34 ` [U-Boot] [PATCH 1/3] fdt: check for fdt errors in fdt_create_phandle Jerry Van Baren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.