diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-20 13:14:08 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-23 13:40:12 -0400 |
commit | 530550651fdfd548d25b6bd5ff4607803540508b (patch) | |
tree | 53ed3b2589aa036e6cbd1c870ec3caf52266e531 /arch/tile/include | |
parent | 0f8b983812f5ff588d7e3459b203714e4e58a9b2 (diff) | |
download | lwn-530550651fdfd548d25b6bd5ff4607803540508b.tar.gz lwn-530550651fdfd548d25b6bd5ff4607803540508b.zip |
tile: switch to generic sys_execve()
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/tile/include')
-rw-r--r-- | arch/tile/include/asm/elf.h | 1 | ||||
-rw-r--r-- | arch/tile/include/asm/processor.h | 1 | ||||
-rw-r--r-- | arch/tile/include/asm/syscalls.h | 3 | ||||
-rw-r--r-- | arch/tile/include/asm/unistd.h | 1 |
4 files changed, 5 insertions, 1 deletions
diff --git a/arch/tile/include/asm/elf.h b/arch/tile/include/asm/elf.h index f8ccf08f6934..b73e1039c911 100644 --- a/arch/tile/include/asm/elf.h +++ b/arch/tile/include/asm/elf.h @@ -148,6 +148,7 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, #define compat_start_thread(regs, ip, usp) do { \ regs->pc = ptr_to_compat_reg((void *)(ip)); \ regs->sp = ptr_to_compat_reg((void *)(usp)); \ + single_step_execve(); \ } while (0) /* diff --git a/arch/tile/include/asm/processor.h b/arch/tile/include/asm/processor.h index 9a83e531e843..879073e76586 100644 --- a/arch/tile/include/asm/processor.h +++ b/arch/tile/include/asm/processor.h @@ -211,6 +211,7 @@ static inline void start_thread(struct pt_regs *regs, { regs->pc = pc; regs->sp = usp; + single_step_execve(); } /* Free all resources held by a thread. */ diff --git a/arch/tile/include/asm/syscalls.h b/arch/tile/include/asm/syscalls.h index 06f0464cfed9..0d52992f8e05 100644 --- a/arch/tile/include/asm/syscalls.h +++ b/arch/tile/include/asm/syscalls.h @@ -68,9 +68,10 @@ long _sys_sigaltstack(const stack_t __user *, stack_t __user *); long _sys_rt_sigreturn(void); long _sys_clone(unsigned long clone_flags, unsigned long newsp, void __user *parent_tid, void __user *child_tid); -long _sys_execve(const char __user *filename, +long sys_execve(const char __user *filename, const char __user *const __user *argv, const char __user *const __user *envp); +#define sys_execve sys_execve #include <asm-generic/syscalls.h> diff --git a/arch/tile/include/asm/unistd.h b/arch/tile/include/asm/unistd.h index 6e032a0a268e..dab827dc8acb 100644 --- a/arch/tile/include/asm/unistd.h +++ b/arch/tile/include/asm/unistd.h @@ -16,4 +16,5 @@ #define __ARCH_WANT_SYS_LLSEEK #endif #define __ARCH_WANT_SYS_NEWFSTATAT +#define __ARCH_WANT_SYS_EXECVE #include <uapi/asm/unistd.h> |