diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-10 13:31:13 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-14 19:37:44 -0400 |
commit | 71915d21e59c153c1202e3198916817c2d18da32 (patch) | |
tree | 16f860959623b593f18215911271d17ace515865 /arch/h8300 | |
parent | 5fae1b664595adc621fb9294b7d19145918073de (diff) |
h8300: generic sys_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/h8300')
-rw-r--r-- | arch/h8300/include/asm/unistd.h | 1 | ||||
-rw-r--r-- | arch/h8300/kernel/process.c | 21 |
2 files changed, 1 insertions, 21 deletions
diff --git a/arch/h8300/include/asm/unistd.h b/arch/h8300/include/asm/unistd.h index 5cd882801d79..07afcfaec995 100644 --- a/arch/h8300/include/asm/unistd.h +++ b/arch/h8300/include/asm/unistd.h | |||
@@ -356,6 +356,7 @@ | |||
356 | #define __ARCH_WANT_SYS_SIGPROCMASK | 356 | #define __ARCH_WANT_SYS_SIGPROCMASK |
357 | #define __ARCH_WANT_SYS_RT_SIGACTION | 357 | #define __ARCH_WANT_SYS_RT_SIGACTION |
358 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | 358 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND |
359 | #define __ARCH_WANT_SYS_EXECVE | ||
359 | 360 | ||
360 | /* | 361 | /* |
361 | * "Conditional" syscalls | 362 | * "Conditional" syscalls |
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index e3dfea71c15f..2a45718cc5e8 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
@@ -183,27 +183,6 @@ int copy_thread(unsigned long clone_flags, | |||
183 | return 0; | 183 | return 0; |
184 | } | 184 | } |
185 | 185 | ||
186 | /* | ||
187 | * sys_execve() executes a new program. | ||
188 | */ | ||
189 | asmlinkage int sys_execve(const char *name, | ||
190 | const char *const *argv, | ||
191 | const char *const *envp, | ||
192 | int dummy, ...) | ||
193 | { | ||
194 | int error; | ||
195 | struct filename *filename; | ||
196 | struct pt_regs *regs = (struct pt_regs *) ((unsigned char *)&dummy-4); | ||
197 | |||
198 | filename = getname(name); | ||
199 | error = PTR_ERR(filename); | ||
200 | if (IS_ERR(filename)) | ||
201 | return error; | ||
202 | error = do_execve(filename->name, argv, envp, regs); | ||
203 | putname(filename); | ||
204 | return error; | ||
205 | } | ||
206 | |||
207 | unsigned long thread_saved_pc(struct task_struct *tsk) | 186 | unsigned long thread_saved_pc(struct task_struct *tsk) |
208 | { | 187 | { |
209 | return ((struct pt_regs *)tsk->thread.esp0)->pc; | 188 | return ((struct pt_regs *)tsk->thread.esp0)->pc; |