alpha: switch to saner kernel_execve() semantics
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Oct 2012 03:12:01 +0000 (23:12 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 12 Oct 2012 17:35:23 +0000 (13:35 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/alpha/Kconfig
arch/alpha/include/asm/unistd.h
arch/alpha/kernel/entry.S

index 7da91246e2793c6d8ecf5556ca65530c6c7275c0..7a08cfb80ee8319887ea4005e5eaa7da2f174c78 100644 (file)
@@ -21,6 +21,7 @@ config ALPHA
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select GENERIC_KERNEL_THREAD
+       select GENERIC_KERNEL_EXECVE
        help
          The Alpha is a 64-bit general-purpose processor designed and
          marketed by the Digital Equipment Corporation of blessed memory,
index 3cb6c1188984f0e9de8816d420a9a9e55fe1f93d..7826e227e4d09003ffb230c1596143f74539d607 100644 (file)
 #define __ARCH_WANT_SYS_SIGPENDING
 #define __ARCH_WANT_SYS_RT_SIGSUSPEND
 #define __ARCH_WANT_SYS_EXECVE
-#define __ARCH_WANT_KERNEL_EXECVE
 
 /* "Conditional" syscalls.  What we want is
 
index 16e074f9e58123bf588ce22b670b9f5d3bd2b2d8..a7607832dd4ff66236b06a8010fb50f9ecd02bdd 100644 (file)
@@ -603,24 +603,9 @@ ret_from_kernel_thread:
        mov     $9, $27
        mov     $10, $16
        jsr     $26, ($9)
-       ldgp    $gp, 0($26)
-       mov     $0, $16
-       mov     $31, $26
-       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
+.end ret_from_kernel_thread
 
 \f
 /*