forked from Minki/linux
arm: get rid of execve wrapper, switch to generic execve() implementation
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
bfd170d565
commit
a63c97a000
@ -469,6 +469,7 @@
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_SYS_SOCKETCALL
|
||||
#endif
|
||||
#define __ARCH_WANT_SYS_EXECVE
|
||||
#define __ARCH_WANT_KERNEL_EXECVE
|
||||
|
||||
/*
|
||||
|
@ -20,7 +20,7 @@
|
||||
CALL(sys_creat)
|
||||
CALL(sys_link)
|
||||
/* 10 */ CALL(sys_unlink)
|
||||
CALL(sys_execve_wrapper)
|
||||
CALL(sys_execve)
|
||||
CALL(sys_chdir)
|
||||
CALL(OBSOLETE(sys_time)) /* used by libc4 */
|
||||
CALL(sys_mknod)
|
||||
|
@ -532,11 +532,6 @@ sys_vfork_wrapper:
|
||||
b sys_vfork
|
||||
ENDPROC(sys_vfork_wrapper)
|
||||
|
||||
sys_execve_wrapper:
|
||||
add r3, sp, #S_OFF
|
||||
b sys_execve
|
||||
ENDPROC(sys_execve_wrapper)
|
||||
|
||||
sys_clone_wrapper:
|
||||
add ip, sp, #S_OFF
|
||||
str ip, [sp, #4]
|
||||
|
@ -59,26 +59,6 @@ asmlinkage int sys_vfork(struct pt_regs *regs)
|
||||
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
/* sys_execve() executes a new program.
|
||||
* This is called indirectly via a small wrapper
|
||||
*/
|
||||
asmlinkage int sys_execve(const char __user *filenamei,
|
||||
const char __user *const __user *argv,
|
||||
const char __user *const __user *envp, struct pt_regs *regs)
|
||||
{
|
||||
int error;
|
||||
char * filename;
|
||||
|
||||
filename = getname(filenamei);
|
||||
error = PTR_ERR(filename);
|
||||
if (IS_ERR(filename))
|
||||
goto out;
|
||||
error = do_execve(filename, argv, envp, regs);
|
||||
putname(filename);
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Since loff_t is a 64 bit type we avoid a lot of ABI hassle
|
||||
* with a different argument ordering.
|
||||
|
Loading…
Reference in New Issue
Block a user