From 1ffbed7220331dabc04dee6d3c520b5b022b9245 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 15 Oct 2012 15:33:32 -0400 Subject: score: switch to generic sys_execve() Signed-off-by: Al Viro --- arch/score/include/asm/syscalls.h | 1 - arch/score/include/asm/unistd.h | 1 + arch/score/kernel/entry.S | 5 ----- arch/score/kernel/sys_score.c | 24 ------------------------ 4 files changed, 1 insertion(+), 30 deletions(-) (limited to 'arch/score') diff --git a/arch/score/include/asm/syscalls.h b/arch/score/include/asm/syscalls.h index 1dd5e0d..8d33253 100644 --- a/arch/score/include/asm/syscalls.h +++ b/arch/score/include/asm/syscalls.h @@ -2,7 +2,6 @@ #define _ASM_SCORE_SYSCALLS_H asmlinkage long score_clone(struct pt_regs *regs); -asmlinkage long score_execve(struct pt_regs *regs); asmlinkage long score_sigaltstack(struct pt_regs *regs); asmlinkage long score_rt_sigreturn(struct pt_regs *regs); diff --git a/arch/score/include/asm/unistd.h b/arch/score/include/asm/unistd.h index a862384..b006ca4 100644 --- a/arch/score/include/asm/unistd.h +++ b/arch/score/include/asm/unistd.h @@ -4,5 +4,6 @@ #define __ARCH_WANT_SYSCALL_NO_FLAGS #define __ARCH_WANT_SYSCALL_OFF_T #define __ARCH_WANT_SYSCALL_DEPRECATED +#define __ARCH_WANT_SYS_EXECVE #include diff --git a/arch/score/kernel/entry.S b/arch/score/kernel/entry.S index 74a5cc7..da99010 100644 --- a/arch/score/kernel/entry.S +++ b/arch/score/kernel/entry.S @@ -487,11 +487,6 @@ illegal_syscall: sw r9, [r0, PT_R7] j syscall_return -ENTRY(sys_execve) - mv r4, r0 - la r8, score_execve - br r8 - ENTRY(sys_clone) mv r4, r0 la r8, score_clone diff --git a/arch/score/kernel/sys_score.c b/arch/score/kernel/sys_score.c index 5a682fc..c54434c 100644 --- a/arch/score/kernel/sys_score.c +++ b/arch/score/kernel/sys_score.c @@ -83,27 +83,3 @@ score_vfork(struct pt_regs *regs) return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->regs[0], regs, 0, NULL, NULL); } - -/* - * sys_execve() executes a new program. - * This is called indirectly via a small wrapper - */ -asmlinkage long -score_execve(struct pt_regs *regs) -{ - int error; - struct filename *filename; - - filename = getname((char __user*)regs->regs[4]); - error = PTR_ERR(filename); - if (IS_ERR(filename)) - return error; - - error = do_execve(filename->name, - (const char __user *const __user *)regs->regs[5], - (const char __user *const __user *)regs->regs[6], - regs); - - putname(filename); - return error; -} -- cgit v1.1