Patchwork [U-Boot] fdt_support.c: avoid unintended return from fdt_fixup_memory_banks()

login
register
mail settings
Submitter miao.yan@windriver.com
Date Aug. 7, 2013, 10:10 a.m.
Message ID <1375870208-935-1-git-send-email-miao.yan@windriver.com>
Download mbox | patch
Permalink /patch/265479/
State RFC
Delegated to: Tom Rini
Headers show

Comments

miao.yan@windriver.com - Aug. 7, 2013, 10:10 a.m.
From: Miao Yan <miao.yan@windriver.com>

fdt_fixup_memory_banks() will add and update /memory node in
device tree blob. In the case that /memory node doesn't exist,
after adding a new one, this function returns error.

The correct behavior should be continuing to update its properties.

Signed-off-by: Miao Yan <miao.yan@windriver.com>
---
Not sure whether this is fixed or not, we are seeing this error
when trying to update a device tree without the "/memory" node.


 common/fdt_support.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Patch

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 6b9fa05..65056d7 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -405,10 +405,11 @@  int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks)
 	nodeoffset = fdt_path_offset(blob, "/memory");
 	if (nodeoffset < 0) {
 		nodeoffset = fdt_add_subnode(blob, 0, "memory");
-		if (nodeoffset < 0)
+		if (nodeoffset < 0) {
 			printf("WARNING: could not create /memory: %s.\n",
 					fdt_strerror(nodeoffset));
-		return nodeoffset;
+			return nodeoffset;
+		}
 	}
 	err = fdt_setprop(blob, nodeoffset, "device_type", "memory",
 			sizeof("memory"));