]> git.karo-electronics.de Git - linux-beck.git/commitdiff
parisc: switch to saner kernel_execve() semantics
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Oct 2012 21:22:16 +0000 (17:22 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 22 Oct 2012 02:38:16 +0000 (22:38 -0400)
ACKed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/parisc/Kconfig
arch/parisc/include/asm/unistd.h
arch/parisc/kernel/entry.S

index c779da7cd96ba7ebcf6d86bca90f38827c68ab83..0aec70c3561403d15a046ea4212f41259dd4f67b 100644 (file)
@@ -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
index b9e39f33590931c533a8c691d5d12be4d5049586..4dab76b70ec9bf26df9e74a56bd317ce9ef7c9de 100644 (file)
@@ -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__ */
index 47fb6ddcf12e6daa71c0ab40fd67508aa38bff3e..c9a9abd4bc587df2e4d1e3fba13057d8be3b9489 100644 (file)
@@ -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 */