summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2008-10-28 08:26:52 +0100
committerGerald Van Baren <vanbaren@cideas.com>2008-10-30 20:37:57 -0400
commitf242a08871839eac081ba5b599af979f3a148a0d (patch)
tree09291b8dcba7c1844a00d701f96e4c6d7060867a /common
parentd685b74c64a38849f1a129b3ab846fbf67dd937e (diff)
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>
Diffstat (limited to 'common')
-rw-r--r--common/fdt_support.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index d483d66f11d..5a83bca4817 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);