From 8c6afe53191152ddb31d794225027ae8020cf9a5 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 11 Oct 2012 17:22:16 -0400 Subject: [PATCH] parisc: switch to saner kernel_execve() semantics Signed-off-by: Al Viro --- arch/parisc/Kconfig | 1 + arch/parisc/include/asm/unistd.h | 1 - arch/parisc/kernel/entry.S | 22 +++------------------- 3 files changed, 4 insertions(+), 20 deletions(-) diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index c779da7cd96b..0aec70c35614 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -23,6 +23,7 @@ config PARISC select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA select GENERIC_KERNEL_THREAD + select GENERIC_KERNEL_EXECVE help The PA-RISC microprocessor is designed by Hewlett-Packard and used diff --git a/arch/parisc/include/asm/unistd.h b/arch/parisc/include/asm/unistd.h index b9e39f335909..4dab76b70ec9 100644 --- a/arch/parisc/include/asm/unistd.h +++ b/arch/parisc/include/asm/unistd.h @@ -995,7 +995,6 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ #define __ARCH_WANT_SYS_RT_SIGACTION #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND -#define __ARCH_WANT_KERNEL_EXECVE #define __ARCH_WANT_SYS_EXECVE #endif /* __ASSEMBLY__ */ diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index 47fb6ddcf12e..c9a9abd4bc58 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -727,26 +727,10 @@ ENTRY(ret_from_kernel_thread) LDREG TASK_PT_GR26(%r1), %r1 ble 0(%sr7, %r1) copy %r31, %r2 - -#ifdef CONFIG_64BIT - ldo -16(%r30),%r29 /* Reference param save area */ - loadgp /* Thread could have been in a module */ -#endif -#ifndef CONFIG_64BIT - b sys_exit -#else - load32 sys_exit, %r1 - bv %r0(%r1) -#endif - ldi 0, %r26 + b finish_child_return + nop ENDPROC(ret_from_kernel_thread) -ENTRY(ret_from_kernel_execve) - mfctl %cr30, %r1 - b syscall_exit /* forward */ - ldo THREAD_SZ_ALGN+FRAME_SIZE(%r1), %r30 -ENDPROC(ret_from_kernel_execve) - /* * struct task_struct *_switch_to(struct task_struct *prev, @@ -1721,7 +1705,7 @@ ENDPROC(sys_fork_wrapper) ENTRY(child_return) BL schedule_tail, %r2 nop - +finish_child_return: LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 ldo TASK_REGS(%r1),%r1 /* get pt regs */ -- 2.39.5