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

Signed-off-by: Peter Korsgaard <[EMAIL PROTECTED]>
---
 common/fdt_support.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 8ceeb0f..e2197ed 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -575,9 +575,10 @@ int fdt_resize(void *blob)
                }
        }
 
-       /* Calculate the actual size of the fdt */
+       /* Calculate the actual size of the fdt
+          + 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);
-- 
1.5.6.5

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to