diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-08-02 03:52:41 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-30 22:21:37 -0400 |
| commit | a63c97a000c9c9a03372943a40c3ba8652aa0ccf (patch) | |
| tree | c2237a63149f9ac7d2479272c68a371cb21993bd /arch/arm/kernel | |
| parent | bfd170d56505bf21cb636b0f1f169eaa815bdfe4 (diff) | |
arm: get rid of execve wrapper, switch to generic execve() implementation
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/calls.S | 2 | ||||
| -rw-r--r-- | arch/arm/kernel/entry-common.S | 5 | ||||
| -rw-r--r-- | arch/arm/kernel/sys_arm.c | 20 |
3 files changed, 1 insertions, 26 deletions
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index 463ff4a0ec8a..b287b3580a9f 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
| @@ -20,7 +20,7 @@ | |||
| 20 | CALL(sys_creat) | 20 | CALL(sys_creat) |
| 21 | CALL(sys_link) | 21 | CALL(sys_link) |
| 22 | /* 10 */ CALL(sys_unlink) | 22 | /* 10 */ CALL(sys_unlink) |
| 23 | CALL(sys_execve_wrapper) | 23 | CALL(sys_execve) |
| 24 | CALL(sys_chdir) | 24 | CALL(sys_chdir) |
| 25 | CALL(OBSOLETE(sys_time)) /* used by libc4 */ | 25 | CALL(OBSOLETE(sys_time)) /* used by libc4 */ |
| 26 | CALL(sys_mknod) | 26 | CALL(sys_mknod) |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 4a6e46a9a3d7..ed7941277ca2 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -532,11 +532,6 @@ sys_vfork_wrapper: | |||
| 532 | b sys_vfork | 532 | b sys_vfork |
| 533 | ENDPROC(sys_vfork_wrapper) | 533 | ENDPROC(sys_vfork_wrapper) |
| 534 | 534 | ||
| 535 | sys_execve_wrapper: | ||
| 536 | add r3, sp, #S_OFF | ||
| 537 | b sys_execve | ||
| 538 | ENDPROC(sys_execve_wrapper) | ||
| 539 | |||
| 540 | sys_clone_wrapper: | 535 | sys_clone_wrapper: |
| 541 | add ip, sp, #S_OFF | 536 | add ip, sp, #S_OFF |
| 542 | str ip, [sp, #4] | 537 | str ip, [sp, #4] |
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index c8e729efc187..c2a898aa57aa 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
| @@ -59,26 +59,6 @@ asmlinkage int sys_vfork(struct pt_regs *regs) | |||
| 59 | return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0, NULL, NULL); | 59 | return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0, NULL, NULL); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | /* sys_execve() executes a new program. | ||
| 63 | * This is called indirectly via a small wrapper | ||
| 64 | */ | ||
| 65 | asmlinkage int sys_execve(const char __user *filenamei, | ||
| 66 | const char __user *const __user *argv, | ||
| 67 | const char __user *const __user *envp, struct pt_regs *regs) | ||
| 68 | { | ||
| 69 | int error; | ||
| 70 | char * filename; | ||
| 71 | |||
| 72 | filename = getname(filenamei); | ||
| 73 | error = PTR_ERR(filename); | ||
| 74 | if (IS_ERR(filename)) | ||
| 75 | goto out; | ||
| 76 | error = do_execve(filename, argv, envp, regs); | ||
| 77 | putname(filename); | ||
| 78 | out: | ||
| 79 | return error; | ||
| 80 | } | ||
| 81 | |||
| 82 | /* | 62 | /* |
| 83 | * Since loff_t is a 64 bit type we avoid a lot of ABI hassle | 63 | * Since loff_t is a 64 bit type we avoid a lot of ABI hassle |
| 84 | * with a different argument ordering. | 64 | * with a different argument ordering. |
