summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/entry.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2012-10-09 21:16:07 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-15 01:31:30 +0200
commitbaf9ff74eda9f0efcc8a68e8a9c9d183be13a810 (patch)
tree4edd32d85cae4ef850973214a922c376537991c3 /arch/mips/kernel/entry.S
parentmips: switch to generic kernel_thread() (diff)
downloadlinux-baf9ff74eda9f0efcc8a68e8a9c9d183be13a810.tar.xz
linux-baf9ff74eda9f0efcc8a68e8a9c9d183be13a810.zip
MIPS: Switch over to generic sys_execve and kernel_execve.
This version contains a few updates by David Daney, in particular it's now using __builtin_frame_address() instead of asm() which depending on personal taste, is slightly more appealing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r--arch/mips/kernel/entry.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index aab6997b8f47..5dcb5fbbbd53 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -192,6 +192,15 @@ syscall_exit_work:
jal syscall_trace_leave
b resume_userspace
+LEAF(ret_from_kernel_execve)
+ move sp, a0
+ ori $28, sp, _THREAD_SIZE - 1
+ xori $28, $28, _THREAD_SIZE - 1
+ li v0, 0
+ li a3, 0
+ j syscall_exit_partial
+ END(ret_from_kernel_execve)
+
#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_MIPS_MT)
/*