aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2015-04-07 16:43:44 -0400
committerIngo Molnar <mingo@kernel.org>2015-04-09 04:31:26 -0400
commita37f34a325d90856314ccd4994e1070dcc6bdcc4 (patch)
tree9761bec624da40a90c0dfd7b2732fbdd8c9cdec2
parent54a81e914b2432a86dd49cf611b0f71ef44ca7ad (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>
-rw-r--r--arch/x86/kernel/entry_64.S20
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
513END(stub_execve) 513END(stub_execve)
514 514/*
515ENTRY(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
519GLOBAL(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)
521END(stub_execveat) 525END(stub_execveat)
522 526
523#ifdef CONFIG_X86_X32_ABI 527#ifdef CONFIG_X86_X32_ABI
524ENTRY(stub_x32_execve) 528 .align 8
529GLOBAL(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
530END(stub_x32_execve) 535END(stub_x32_execve)
531ENTRY(stub_x32_execveat) 536 .align 8
537GLOBAL(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
541ENTRY(stub32_execve) 547 .align 8
548GLOBAL(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
546END(stub32_execve) 553END(stub32_execve)
547ENTRY(stub32_execveat) 554 .align 8
555GLOBAL(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