aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2015-04-07 16:43:38 -0400
committerIngo Molnar <mingo@kernel.org>2015-04-09 04:31:24 -0400
commit05f1752d195c145d02ae40881d0985c2cfbee473 (patch)
tree64be9c420b425cd07ec3c3acd48409b529e39563
parent31f0119b817f6474a7b4c48fed7588af1b62c543 (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.S34
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
522END(stub_execveat) 522END(stub_execveat)
523 523
524#ifdef CONFIG_X86_X32_ABI
525ENTRY(stub_x32_execve)
526 CFI_STARTPROC
527 DEFAULT_FRAME 0, 8
528 call compat_sys_execve
529 jmp return_from_execve
530 CFI_ENDPROC
531END(stub_x32_execve)
532ENTRY(stub_x32_execveat)
533 CFI_STARTPROC
534 DEFAULT_FRAME 0, 8
535 call compat_sys_execveat
536 jmp return_from_execve
537 CFI_ENDPROC
538END(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
557END(stub_x32_rt_sigreturn) 574END(stub_x32_rt_sigreturn)
558
559ENTRY(stub_x32_execve)
560 CFI_STARTPROC
561 DEFAULT_FRAME 0, 8
562 call compat_sys_execve
563 jmp return_from_execve
564 CFI_ENDPROC
565END(stub_x32_execve)
566
567ENTRY(stub_x32_execveat)
568 CFI_STARTPROC
569 DEFAULT_FRAME 0, 8
570 call compat_sys_execveat
571 jmp return_from_execve
572 CFI_ENDPROC
573END(stub_x32_execveat)
574
575#endif 575#endif
576 576
577/* 577/*