aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/process.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-05-31 22:22:52 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-09-30 22:53:31 -0400
commit44f4b56b54d2ab5d06c1726f2cde8ca15c8fac47 (patch)
tree288101c8a9effe021e200e05f443a93f440de32f /arch/alpha/kernel/process.c
parentcba1ec7e88a0257eb13e84d170a93cd52b702562 (diff)
alpha: introduce ret_from_kernel_execve(), switch to generic kernel_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/alpha/kernel/process.c')
-rw-r--r--arch/alpha/kernel/process.c19
1 files changed, 0 insertions, 19 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index 6b33ecdbc534..f47d764eaa11 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -435,22 +435,3 @@ get_wchan(struct task_struct *p)
435 } 435 }
436 return pc; 436 return pc;
437} 437}
438
439int kernel_execve(const char *path, const char *const argv[], const char *const envp[])
440{
441 /* Avoid the HAE being gratuitously wrong, which would cause us
442 to do the whole turn off interrupts thing and restore it. */
443 struct pt_regs regs = {.hae = alpha_mv.hae_cache};
444 int err = do_execve(path, argv, envp, &regs);
445 if (!err) {
446 struct pt_regs *p = current_pt_regs();
447 /* copy regs to normal position and off to userland we go... */
448 *p = regs;
449 __asm__ __volatile__ (
450 "mov %0, $sp;"
451 "br $31, ret_from_sys_call"
452 : : "r"(p));
453 }
454 return err;
455}
456EXPORT_SYMBOL(kernel_execve);