diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2015-04-07 16:43:44 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-04-09 04:31:26 -0400 |
commit | a37f34a325d90856314ccd4994e1070dcc6bdcc4 (patch) | |
tree | 9761bec624da40a90c0dfd7b2732fbdd8c9cdec2 /arch/x86/kernel/entry_64.S | |
parent | 54a81e914b2432a86dd49cf611b0f71ef44ca7ad (diff) |
x86/asm/entry/64: Reduce padding in execve stubs
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: Alexei Starovoitov <ast@plumgrid.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Drewry <wad@chromium.org>
Link: http://lkml.kernel.org/r/1428439424-7258-8-git-send-email-dvlasenk@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/entry_64.S')
-rw-r--r-- | arch/x86/kernel/entry_64.S | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index b67f2fc0d160..c7b238494b31 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
@@ -511,8 +511,12 @@ return_from_execve: | |||
511 | jmp int_ret_from_sys_call | 511 | jmp int_ret_from_sys_call |
512 | CFI_ENDPROC | 512 | CFI_ENDPROC |
513 | END(stub_execve) | 513 | END(stub_execve) |
514 | 514 | /* | |
515 | ENTRY(stub_execveat) | 515 | * Remaining execve stubs are only 7 bytes long. |
516 | * ENTRY() often aligns to 16 bytes, which in this case has no benefits. | ||
517 | */ | ||
518 | .align 8 | ||
519 | GLOBAL(stub_execveat) | ||
516 | CFI_STARTPROC | 520 | CFI_STARTPROC |
517 | DEFAULT_FRAME 0, 8 | 521 | DEFAULT_FRAME 0, 8 |
518 | call sys_execveat | 522 | call sys_execveat |
@@ -521,14 +525,16 @@ ENTRY(stub_execveat) | |||
521 | END(stub_execveat) | 525 | END(stub_execveat) |
522 | 526 | ||
523 | #ifdef CONFIG_X86_X32_ABI | 527 | #ifdef CONFIG_X86_X32_ABI |
524 | ENTRY(stub_x32_execve) | 528 | .align 8 |
529 | GLOBAL(stub_x32_execve) | ||
525 | CFI_STARTPROC | 530 | CFI_STARTPROC |
526 | DEFAULT_FRAME 0, 8 | 531 | DEFAULT_FRAME 0, 8 |
527 | call compat_sys_execve | 532 | call compat_sys_execve |
528 | jmp return_from_execve | 533 | jmp return_from_execve |
529 | CFI_ENDPROC | 534 | CFI_ENDPROC |
530 | END(stub_x32_execve) | 535 | END(stub_x32_execve) |
531 | ENTRY(stub_x32_execveat) | 536 | .align 8 |
537 | GLOBAL(stub_x32_execveat) | ||
532 | CFI_STARTPROC | 538 | CFI_STARTPROC |
533 | DEFAULT_FRAME 0, 8 | 539 | DEFAULT_FRAME 0, 8 |
534 | call compat_sys_execveat | 540 | call compat_sys_execveat |
@@ -538,13 +544,15 @@ END(stub_x32_execveat) | |||
538 | #endif | 544 | #endif |
539 | 545 | ||
540 | #ifdef CONFIG_IA32_EMULATION | 546 | #ifdef CONFIG_IA32_EMULATION |
541 | ENTRY(stub32_execve) | 547 | .align 8 |
548 | GLOBAL(stub32_execve) | ||
542 | CFI_STARTPROC | 549 | CFI_STARTPROC |
543 | call compat_sys_execve | 550 | call compat_sys_execve |
544 | jmp return_from_execve | 551 | jmp return_from_execve |
545 | CFI_ENDPROC | 552 | CFI_ENDPROC |
546 | END(stub32_execve) | 553 | END(stub32_execve) |
547 | ENTRY(stub32_execveat) | 554 | .align 8 |
555 | GLOBAL(stub32_execveat) | ||
548 | CFI_STARTPROC | 556 | CFI_STARTPROC |
549 | call compat_sys_execveat | 557 | call compat_sys_execveat |
550 | jmp return_from_execve | 558 | jmp return_from_execve |