aboutsummaryrefslogtreecommitdiffstats
path: root/arch/h8300
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-10 13:31:13 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-14 19:37:44 -0400
commit71915d21e59c153c1202e3198916817c2d18da32 (patch)
tree16f860959623b593f18215911271d17ace515865 /arch/h8300
parent5fae1b664595adc621fb9294b7d19145918073de (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.h1
-rw-r--r--arch/h8300/kernel/process.c21
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 */
189asmlinkage 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
207unsigned long thread_saved_pc(struct task_struct *tsk) 186unsigned 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;