summaryrefslogtreecommitdiff
path: root/arch/cris/arch-v32
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-03 14:56:02 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-14 23:12:33 -0400
commit1703a219f7f5ab2c39514f9f0763001cdc907d25 (patch)
treeaf79698ae74c94418ef31483c6e75d9588a3f757 /arch/cris/arch-v32
parent69b58a67213506f98835b0ee8cf24324f59a1442 (diff)
cris: switch to generic kernel_execve/sys_execve
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/cris/arch-v32')
-rw-r--r--arch/cris/arch-v32/kernel/entry.S13
-rw-r--r--arch/cris/arch-v32/kernel/process.c22
2 files changed, 2 insertions, 33 deletions
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index a9bcbc419278..faa644111feb 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -92,8 +92,8 @@ ret_from_kernel_thread:
move.d $r2, $r10
jsr $r1
nop
- moveq 0, $r10
- jsr sys_exit
+ moveq 0, $r9 ; no syscall restarts, TYVM...
+ ba ret_from_sys_call
nop
.size ret_from_kernel_thread, . - ret_from_kernel_thread
@@ -544,15 +544,6 @@ _ugdb_handle_exception:
ba do_sigtrap ; SIGTRAP the offending process.
move.d [$sp+], $r0 ; Restore R0 in delay slot.
- .global kernel_execve
- .type kernel_execve,@function
-kernel_execve:
- move.d __NR_execve, $r9
- break 13
- ret
- nop
- .size kernel_execve, . - kernel_execve
-
.data
.section .rodata,"a"
diff --git a/arch/cris/arch-v32/kernel/process.c b/arch/cris/arch-v32/kernel/process.c
index 3edbdb88110e..fe465401b6ec 100644
--- a/arch/cris/arch-v32/kernel/process.c
+++ b/arch/cris/arch-v32/kernel/process.c
@@ -186,28 +186,6 @@ sys_vfork(void)
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, rdusp(), current_pt_regs(), 0, NULL, NULL);
}
-/* sys_execve() executes a new program. */
-asmlinkage int
-sys_execve(const char *fname,
- const char *const *argv,
- const char *const *envp, long r13, long mof, long srp,
- struct pt_regs *regs)
-{
- int error;
- struct filename *filename;
-
- filename = getname(fname);
- error = PTR_ERR(filename);
-
- if (IS_ERR(filename))
- goto out;
-
- error = do_execve(filename->name, argv, envp, regs);
- putname(filename);
- out:
- return error;
-}
-
unsigned long
get_wchan(struct task_struct *p)
{