Fix the -S to modify the totalsize properly.
PATCH 1/1 Fix the -S to modify the totalsize properly.
With the last improvement to pad out the blob, I broke the blob header totalsize adjustment. The adjustment was moved up in the code before the memory image of the blob is created.
---
Hi Jon,
This fixes my header totalsize screwup. Until this is applied, the -S adds padding but is not effective.
My apologies,
gvb
flattree.c | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-)
flattree.c +17 -12
@@ -353,6 +353,7 @@ void dt_to_blob(FILE *f, struct boot_info *bi, int version,struct data dtbuf = empty_data;struct data strbuf = empty_data;struct boot_param_header bph; +int padlen;for (i =0 ; i <ARRAY_SIZE (version_table); i++) {if (version_table[i].version == version)
@@ -371,6 +372,19 @@ void dt_to_blob(FILE *f, struct boot_info *bi, int version, boot_cpuid_phys);/* +* If the user asked for more space than is used, adjust the totalsize. +*/ + padlen = minsize -be32_to_cpu (bph.totalsize); +if (padlen >0 ) { + bph.totalsize =cpu_to_be32 (minsize); + }else { +if ((minsize >0 ) && (quiet <1 )) +fprintf (stderr, +"Warning: blob size %d >= minimum size %d\n" , +be32_to_cpu (bph.totalsize), minsize); + } + +/* * Assemble the blob: start with the header, add with alignment * the reserve buffer, add the reserve map terminating zeroes, * the device tree itself, and finally the strings.
@@ -385,18 +399,9 @@ void dt_to_blob(FILE *f, struct boot_info *bi, int version,/* * If the user asked for more space than is used, pad out the blob. */ -if (minsize >0 ) { -int padlen = minsize -be32_to_cpu (bph.totalsize); - -if (padlen >0 ) { - blob =data_append_zeroes (blob, padlen); - bph.totalsize =cpu_to_be32 (minsize); - }else { -if (quiet <1 ) -fprintf (stderr, -"Warning: blob size %d >= minimum size %d\n" , -be32_to_cpu (bph.totalsize), minsize); - } +if (padlen >0 ) { + blob =data_append_zeroes (blob, padlen); + bph.totalsize =cpu_to_be32 (minsize); }fwrite (blob.val, blob.len,1 , f);
Signature · 1 line
1.4.4.4
Jon Loeliger
AppliedSo, like, the other day Jerry Van Baren mumbled:
Quoted 5 lines
With the last improvement to pad out the blob, I broke the blob header totalsize adjustment. The adjustment was moved up in the code before the memory image of the blob is created.
Signed-off-by Gerald Van Baren <[email protected]>
Applied!
Quoted 6 lines
Hi Jon,
This fixes my header totalsize screwup. Until this is applied, the -S adds padding but is not effective.
My apologies,
[Vader Voice]
Apology... accepted.
[/Vader Voice]
Thanks,
jdl