diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2015-04-07 16:43:38 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-04-09 04:31:24 -0400 |
commit | 05f1752d195c145d02ae40881d0985c2cfbee473 (patch) | |
tree | 64be9c420b425cd07ec3c3acd48409b529e39563 | |
parent | 31f0119b817f6474a7b4c48fed7588af1b62c543 (diff) |
x86/asm/entry/64: Move stub_x32_execvecloser() to stub_execveat()
This is a preparatory patch for moving stub32_execve[at]() to this
file. It makes sense to have all execve stubs in one place, so
that they can reuse code.
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-2-git-send-email-dvlasenk@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/x86/kernel/entry_64.S | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index 5252e6021826..f7d9ba6f73a3 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
@@ -521,6 +521,23 @@ ENTRY(stub_execveat) | |||
521 | CFI_ENDPROC | 521 | CFI_ENDPROC |
522 | END(stub_execveat) | 522 | END(stub_execveat) |
523 | 523 | ||
524 | #ifdef CONFIG_X86_X32_ABI | ||
525 | ENTRY(stub_x32_execve) | ||
526 | CFI_STARTPROC | ||
527 | DEFAULT_FRAME 0, 8 | ||
528 | call compat_sys_execve | ||
529 | jmp return_from_execve | ||
530 | CFI_ENDPROC | ||
531 | END(stub_x32_execve) | ||
532 | ENTRY(stub_x32_execveat) | ||
533 | CFI_STARTPROC | ||
534 | DEFAULT_FRAME 0, 8 | ||
535 | call compat_sys_execveat | ||
536 | jmp return_from_execve | ||
537 | CFI_ENDPROC | ||
538 | END(stub_x32_execveat) | ||
539 | #endif | ||
540 | |||
524 | /* | 541 | /* |
525 | * sigreturn is special because it needs to restore all registers on return. | 542 | * sigreturn is special because it needs to restore all registers on return. |
526 | * This cannot be done with SYSRET, so use the IRET return path instead. | 543 | * This cannot be done with SYSRET, so use the IRET return path instead. |
@@ -555,23 +572,6 @@ ENTRY(stub_x32_rt_sigreturn) | |||
555 | jmp return_from_stub | 572 | jmp return_from_stub |
556 | CFI_ENDPROC | 573 | CFI_ENDPROC |
557 | END(stub_x32_rt_sigreturn) | 574 | END(stub_x32_rt_sigreturn) |
558 | |||
559 | ENTRY(stub_x32_execve) | ||
560 | CFI_STARTPROC | ||
561 | DEFAULT_FRAME 0, 8 | ||
562 | call compat_sys_execve | ||
563 | jmp return_from_execve | ||
564 | CFI_ENDPROC | ||
565 | END(stub_x32_execve) | ||
566 | |||
567 | ENTRY(stub_x32_execveat) | ||
568 | CFI_STARTPROC | ||
569 | DEFAULT_FRAME 0, 8 | ||
570 | call compat_sys_execveat | ||
571 | jmp return_from_execve | ||
572 | CFI_ENDPROC | ||
573 | END(stub_x32_execveat) | ||
574 | |||
575 | #endif | 575 | #endif |
576 | 576 | ||
577 | /* | 577 | /* |