[coreboot-gerrit] New patch to review for coreboot: 1186d0d rmodtool: correct final memory size calculation

Aaron Durbin (adurbin@google.com) gerrit at coreboot.org
Tue Aug 26 20:58:58 CEST 2014


Aaron Durbin (adurbin at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6767

-gerrit

commit 1186d0d314a7aab1f0e7d6cefd373567105b22d8
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Tue Aug 26 13:52:30 2014 -0500

    rmodtool: correct final memory size calculation
    
    Apparently when I originally wrote this I confused myself to no end.
    The code/data of an rmodule has a set memory size which is associated
    with the .payload section. The relocation entries may increase the
    overall footprint of the memory size if the rmodule has no bss but
    a lot of relocations. Therefore, just compare relocation entries size
    plus the file size of the .payload section with the memory size of the
    paylod section. The .empty section is added only when we have not met
    the final target size.
    
    Change-Id: I5521dff048ae64a9b6e3c8f84a390eba37c7d0f5
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 util/cbfstool/rmodule.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/util/cbfstool/rmodule.c b/util/cbfstool/rmodule.c
index a5730f1..95aff54 100644
--- a/util/cbfstool/rmodule.c
+++ b/util/cbfstool/rmodule.c
@@ -518,11 +518,11 @@ write_elf(const struct rmod_context *ctx, const struct buffer *in,
 	 * is considered a part of the program.
 	 */
 	total_size += buffer_size(&rmod_header);
-	total_size += ctx->phdr->p_memsz;
-	if (buffer_size(&relocs) + ctx->phdr->p_filesz > total_size) {
-		total_size -= ctx->phdr->p_memsz;
+	if (buffer_size(&relocs) + ctx->phdr->p_filesz > ctx->phdr->p_memsz) {
 		total_size += buffer_size(&relocs);
 		total_size += ctx->phdr->p_filesz;
+	} else {
+		total_size += ctx->phdr->p_memsz;
 	}
 
 	ret = add_section(ew, &rmod_header, ".header", addr,



More information about the coreboot-gerrit mailing list