aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-11 16:01:20 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-15 16:27:52 -0400
commit9b0e5d42d9a66621fce83a22987d33325debb588 (patch)
tree33d3f14e6f115bcc013b4673d62c715e79e5b945
parentbaf9ff74eda9f0efcc8a68e8a9c9d183be13a810 (diff)
mips: switch to saner kernel_execve() semantics
Acked-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/include/asm/unistd.h1
-rw-r--r--arch/mips/kernel/entry.S12
3 files changed, 2 insertions, 12 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ede301f9c88b..4183e62f178c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -41,6 +41,7 @@ config MIPS
41 select MODULES_USE_ELF_REL 41 select MODULES_USE_ELF_REL
42 select MODULES_USE_ELF_RELA if 64BIT 42 select MODULES_USE_ELF_RELA if 64BIT
43 select GENERIC_KERNEL_THREAD 43 select GENERIC_KERNEL_THREAD
44 select GENERIC_KERNEL_EXECVE
44 45
45menu "Machine selection" 46menu "Machine selection"
46 47
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h
index 8ae908c66e59..b306e2081cad 100644
--- a/arch/mips/include/asm/unistd.h
+++ b/arch/mips/include/asm/unistd.h
@@ -18,7 +18,6 @@
18#ifndef __ASSEMBLY__ 18#ifndef __ASSEMBLY__
19 19
20#define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 20#define __ARCH_OMIT_COMPAT_SYS_GETDENTS64
21#define __ARCH_WANT_KERNEL_EXECVE
22#define __ARCH_WANT_OLD_READDIR 21#define __ARCH_WANT_OLD_READDIR
23#define __ARCH_WANT_SYS_ALARM 22#define __ARCH_WANT_SYS_ALARM
24#define __ARCH_WANT_SYS_EXECVE 23#define __ARCH_WANT_SYS_EXECVE
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 5dcb5fbbbd53..3320cb4ac1d4 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -69,8 +69,7 @@ FEXPORT(ret_from_kernel_thread)
69 jal schedule_tail # a0 = struct task_struct *prev 69 jal schedule_tail # a0 = struct task_struct *prev
70 move a0, s1 70 move a0, s1
71 jal s0 71 jal s0
72 li a0, 0 72 j syscall_exit
73 j sys_exit
74 73
75FEXPORT(ret_from_fork) 74FEXPORT(ret_from_fork)
76 jal schedule_tail # a0 = struct task_struct *prev 75 jal schedule_tail # a0 = struct task_struct *prev
@@ -192,15 +191,6 @@ syscall_exit_work:
192 jal syscall_trace_leave 191 jal syscall_trace_leave
193 b resume_userspace 192 b resume_userspace
194 193
195LEAF(ret_from_kernel_execve)
196 move sp, a0
197 ori $28, sp, _THREAD_SIZE - 1
198 xori $28, $28, _THREAD_SIZE - 1
199 li v0, 0
200 li a3, 0
201 j syscall_exit_partial
202 END(ret_from_kernel_execve)
203
204#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_MIPS_MT) 194#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_MIPS_MT)
205 195
206/* 196/*