|
@@ -435,22 +435,3 @@ get_wchan(struct task_struct *p)
|
|
|
}
|
|
|
return pc;
|
|
|
}
|
|
|
-
|
|
|
-int kernel_execve(const char *path, const char *const argv[], const char *const envp[])
|
|
|
-{
|
|
|
- /* Avoid the HAE being gratuitously wrong, which would cause us
|
|
|
- to do the whole turn off interrupts thing and restore it. */
|
|
|
- struct pt_regs regs = {.hae = alpha_mv.hae_cache};
|
|
|
- int err = do_execve(path, argv, envp, ®s);
|
|
|
- if (!err) {
|
|
|
- struct pt_regs *p = current_pt_regs();
|
|
|
- /* copy regs to normal position and off to userland we go... */
|
|
|
- *p = regs;
|
|
|
- __asm__ __volatile__ (
|
|
|
- "mov %0, $sp;"
|
|
|
- "br $31, ret_from_sys_call"
|
|
|
- : : "r"(p));
|
|
|
- }
|
|
|
- return err;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(kernel_execve);
|