lkml.org 
[lkml]   [2020]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] x86/boot/compressed/64: Remove .bss/.pgtable from bzImage
    Date
    Commit 5b11f1cee579 ("x86, boot: straighten out ranges to copy/zero in
    compressed/head*.S") introduced a separate .pgtable section, splitting
    it out from the rest of .bss. This section was added without the
    writeable flag, marking it as read-only. This results in the linker
    putting the .rela.dyn section (containing bogus dynamic relocations from
    head_64.o) after the .bss and .pgtable sections.

    When we use objcopy to convert compressed/vmlinux into a binary for the
    bzImage, the .bss and .pgtable sections get materialized as ~176KiB of
    zero bytes in the binary in order to place .rela.dyn at the correct
    location.

    Fix this by marking .pgtable as writeable. This moves the .rela.dyn
    section earlier so that .bss and .pgtable are the last allocated
    sections and so don't appear in bzImage.

    Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
    ---
    arch/x86/boot/compressed/head_64.S | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
    index 58a512e33d8d..6eb30f8a3ce7 100644
    --- a/arch/x86/boot/compressed/head_64.S
    +++ b/arch/x86/boot/compressed/head_64.S
    @@ -709,7 +709,7 @@ SYM_DATA_END_LABEL(boot_stack, SYM_L_LOCAL, boot_stack_end)
    /*
    * Space for page tables (not in .bss so not zeroed)
    */
    - .section ".pgtable","a",@nobits
    + .section ".pgtable","aw",@nobits
    .balign 4096
    SYM_DATA_LOCAL(pgtable, .fill BOOT_PGT_SIZE, 1, 0)

    --
    2.24.1
    \
     
     \ /
      Last update: 2020-01-09 16:04    [W:5.746 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site