fdt_resize(): ensure minimum padding
PATCH 1/1 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 <[email protected]>
Acked-by Andy Fleming <[email protected]>
--- common/fdt_support.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
common/fdt_support.c +5 -2
@@ -575,9 +575,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 );
Signature · 1 line
1.5.6.5
PATCH 1/1 fdt_resize(): ensure minimum padding
Quoted 19 lines · Peter Korsgaard
fdt_add_mem_rsv()requires space for a structfdt_reserve_entry(16 bytes), so make sure thatfdt_resizeat least adds that much padding, no matter what the location or size of the fdt is.Signed-off-by Peter Korsgaard <[email protected]>Acked-by Andy Fleming <[email protected]>--- common/fdt_support.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)common/fdt_support.c +0
-1@@ -575,9 +575,12 @@ int fdt_resize(void *blob) } } -/* Calculate the actual size of the fdt */
common/fdt_support.c int fdt_resize(void *blob) · line 586
Quoted 10 lines
common/fdt_support.c +5
-1+/* +* 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 );
Applied to the u-boot-fdt subrepo.
Thanks,
gvb