summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/entry.S
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-01 04:22:52 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-01 04:53:31 +0200
commit44f4b56b54d2ab5d06c1726f2cde8ca15c8fac47 (patch)
tree288101c8a9effe021e200e05f443a93f440de32f /arch/alpha/kernel/entry.S
parentalpha: switch to generic kernel_thread() (diff)
downloadlinux-44f4b56b54d2ab5d06c1726f2cde8ca15c8fac47.tar.xz
linux-44f4b56b54d2ab5d06c1726f2cde8ca15c8fac47.zip
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/entry.S')
-rw-r--r--arch/alpha/kernel/entry.S13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index 421dccf273eb..7e43e1156d10 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -626,6 +626,19 @@ ret_from_kernel_thread:
jmp $31, sys_exit
.end ret_from_kernel_thread
+ .globl ret_from_kernel_execve
+ .align 4
+ .ent ret_from_kernel_execve
+ret_from_kernel_execve:
+ mov $16, $sp
+ /* Avoid the HAE being gratuitously wrong, to avoid restoring it. */
+ ldq $2, alpha_mv+HAE_CACHE
+ stq $2, 152($sp) /* HAE */
+ mov $31, $19 /* to disable syscall restarts */
+ br $31, ret_to_user
+
+.end ret_from_kernel_execve
+
/*
* Special system calls. Most of these are special in that they either