From: Masahiro Yamada <yamada.m@jp.panasonic.com>
Date: Fri, 18 Apr 2014 08:41:05 +0000 (+0900)
Subject: fdt_support: correct the return condition of fdt_initrd()
X-Git-Tag: v2025.01-rc5-pxa1908~15175
X-Git-Url: http://git.dujemihanovic.xyz/html/static/gitweb.css?a=commitdiff_plain;h=50babaf852e3b48680f7ea782a756043f64f8fe2;p=u-boot.git

fdt_support: correct the return condition of fdt_initrd()

Before this commit, fdt_initrd() just returned if initrd
start address is zero.
But it is possible if the RAM is located at address 0.

This commit makes the return condition more reasonable:
Just return if the size of initrd is zero.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
---

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 324d6b9019..7927a83b89 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -217,15 +217,15 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end)
 	int is_u64;
 	uint64_t addr, size;
 
+	/* just return if the size of initrd is zero */
+	if (initrd_start == initrd_end)
+		return 0;
+
 	/* find or create "/chosen" node. */
 	nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen");
 	if (nodeoffset < 0)
 		return nodeoffset;
 
-	/* just return if initrd_start/end aren't valid */
-	if ((initrd_start == 0) || (initrd_end == 0))
-		return 0;
-
 	total = fdt_num_mem_rsv(fdt);
 
 	/*