From f242a08871839eac081ba5b599af979f3a148a0d Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <jacmet@sunsite.dk>
Date: Tue, 28 Oct 2008 08:26:52 +0100
Subject: [PATCH] fdt_resize(): ensure minimum padding

fdt_add_mem_rsv() requires space for a struct fdt_reserve_entry
(16 bytes), so make sure that fdt_resize at least adds that much
padding, no matter what the location or size of the fdt is.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Acked-by: Andy Fleming <afleming@freescale.com>
---
 common/fdt_support.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index d483d66f11..5a83bca481 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -602,9 +602,12 @@ int fdt_resize(void *blob)
 		}
 	}
 
-	/* Calculate the actual size of the fdt */
+	/*
+	 * Calculate the actual size of the fdt
+	 * plus the size needed for fdt_add_mem_rsv
+	 */
 	actualsize = fdt_off_dt_strings(blob) +
-		fdt_size_dt_strings(blob);
+		fdt_size_dt_strings(blob) + sizeof(struct fdt_reserve_entry);
 
 	/* Make it so the fdt ends on a page boundary */
 	actualsize = ALIGN(actualsize, 0x1000);
-- 
2.39.5