lkml.org 
[lkml]   [2015]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 8/8] x86/asm/entry/64: Reduce padding in execve stubs
    Date
    execve stubs are 7 bytes only. Padding them to 16 bytes is a waste.

    text data bss dec hex filename
    12594 0 0 12594 3132 entry_64.o.before
    12530 0 0 12530 30f2 entry_64.o

    Run-tested.

    Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
    CC: Linus Torvalds <torvalds@linux-foundation.org>
    CC: Steven Rostedt <rostedt@goodmis.org>
    CC: Ingo Molnar <mingo@kernel.org>
    CC: Borislav Petkov <bp@alien8.de>
    CC: "H. Peter Anvin" <hpa@zytor.com>
    CC: Andy Lutomirski <luto@amacapital.net>
    CC: Oleg Nesterov <oleg@redhat.com>
    CC: Frederic Weisbecker <fweisbec@gmail.com>
    CC: Alexei Starovoitov <ast@plumgrid.com>
    CC: Will Drewry <wad@chromium.org>
    CC: Kees Cook <keescook@chromium.org>
    CC: x86@kernel.org
    CC: linux-kernel@vger.kernel.org
    ---
    arch/x86/kernel/entry_64.S | 20 ++++++++++++++------
    1 file changed, 14 insertions(+), 6 deletions(-)

    diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
    index 05224d4..2aa3eca 100644
    --- a/arch/x86/kernel/entry_64.S
    +++ b/arch/x86/kernel/entry_64.S
    @@ -434,8 +434,12 @@ return_from_execve:
    jmp int_ret_from_sys_call
    CFI_ENDPROC
    END(stub_execve)
    -
    -ENTRY(stub_execveat)
    +/*
    + * Remaining execve stubs are only 7 bytes long.
    + * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
    + */
    + .align 8
    +GLOBAL(stub_execveat)
    CFI_STARTPROC
    DEFAULT_FRAME 0, 8
    call sys_execveat
    @@ -444,14 +448,16 @@ ENTRY(stub_execveat)
    END(stub_execveat)

    #ifdef CONFIG_X86_X32_ABI
    -ENTRY(stub_x32_execve)
    + .align 8
    +GLOBAL(stub_x32_execve)
    CFI_STARTPROC
    DEFAULT_FRAME 0, 8
    call compat_sys_execve
    jmp return_from_execve
    CFI_ENDPROC
    END(stub_x32_execve)
    -ENTRY(stub_x32_execveat)
    + .align 8
    +GLOBAL(stub_x32_execveat)
    CFI_STARTPROC
    DEFAULT_FRAME 0, 8
    call compat_sys_execveat
    @@ -461,13 +467,15 @@ END(stub_x32_execveat)
    #endif

    #ifdef CONFIG_IA32_EMULATION
    -ENTRY(stub32_execve)
    + .align 8
    +GLOBAL(stub32_execve)
    CFI_STARTPROC
    call compat_sys_execve
    jmp return_from_execve
    CFI_ENDPROC
    END(stub32_execve)
    -ENTRY(stub32_execveat)
    + .align 8
    +GLOBAL(stub32_execveat)
    CFI_STARTPROC
    call compat_sys_execveat
    jmp return_from_execve
    --
    1.8.1.4


    \
     
     \ /
      Last update: 2015-04-07 23:21    [W:3.630 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site