Messages in this thread | | | Date | Wed, 22 Apr 2015 10:07:55 -0400 | Subject | Re: [PATCH v2] x86/asm/entry/64: 32-bit execve stubs are identical to x32 ones, merge them. | From | Brian Gerst <> |
| |
On Tue, Apr 21, 2015 at 12:03 PM, Denys Vlasenko <dvlasenk@redhat.com> wrote: > Siggested by Brian Gerst.
Suggested
> > 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 > --- > > Changes in v2: fixed "suggested by", I remebered it wrongly. > > arch/x86/kernel/entry_64.S | 23 +++++------------------ > 1 file changed, 5 insertions(+), 18 deletions(-) > > diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S > index c7b2384..3bdfdcd 100644 > --- a/arch/x86/kernel/entry_64.S > +++ b/arch/x86/kernel/entry_64.S > @@ -524,40 +524,27 @@ GLOBAL(stub_execveat) > CFI_ENDPROC > END(stub_execveat) > > -#ifdef CONFIG_X86_X32_ABI > +#if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION) > .align 8 > GLOBAL(stub_x32_execve) > +GLOBAL(stub32_execve) > CFI_STARTPROC > DEFAULT_FRAME 0, 8 > call compat_sys_execve > jmp return_from_execve > CFI_ENDPROC > +END(stub32_execve) > END(stub_x32_execve) > .align 8 > GLOBAL(stub_x32_execveat) > - CFI_STARTPROC > - DEFAULT_FRAME 0, 8 > - call compat_sys_execveat > - jmp return_from_execve > - CFI_ENDPROC > -END(stub_x32_execveat) > -#endif > - > -#ifdef CONFIG_IA32_EMULATION > - .align 8 > -GLOBAL(stub32_execve) > - CFI_STARTPROC > - call compat_sys_execve > - jmp return_from_execve > - CFI_ENDPROC > -END(stub32_execve) > - .align 8 > GLOBAL(stub32_execveat) > CFI_STARTPROC > + DEFAULT_FRAME 0, 8 > call compat_sys_execveat > jmp return_from_execve > CFI_ENDPROC > END(stub32_execveat) > +END(stub_x32_execveat) > #endif > > /*
I don't think it's necessary to keep both labels. Just use one and change the syscall tables accordingly. Otherwise, looks good.
-- Brian Gerst
| |