aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-10 23:12:01 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-12 13:35:23 -0400
commit5522be6a4624a5f505555569e4d9cee946630686 (patch)
tree27a240cfb4dd0966be2f819319ca44097950878d
parent9fff2fa0db911b0b75ec1f9bec72460c0a676ef5 (diff)
alpha: switch to saner kernel_execve() semantics
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--arch/alpha/Kconfig1
-rw-r--r--arch/alpha/include/asm/unistd.h1
-rw-r--r--arch/alpha/kernel/entry.S17
3 files changed, 2 insertions, 17 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 7da91246e279..7a08cfb80ee8 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -21,6 +21,7 @@ config ALPHA
21 select GENERIC_STRNCPY_FROM_USER 21 select GENERIC_STRNCPY_FROM_USER
22 select GENERIC_STRNLEN_USER 22 select GENERIC_STRNLEN_USER
23 select GENERIC_KERNEL_THREAD 23 select GENERIC_KERNEL_THREAD
24 select GENERIC_KERNEL_EXECVE
24 help 25 help
25 The Alpha is a 64-bit general-purpose processor designed and 26 The Alpha is a 64-bit general-purpose processor designed and
26 marketed by the Digital Equipment Corporation of blessed memory, 27 marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/alpha/include/asm/unistd.h b/arch/alpha/include/asm/unistd.h
index 3cb6c1188984..7826e227e4d0 100644
--- a/arch/alpha/include/asm/unistd.h
+++ b/arch/alpha/include/asm/unistd.h
@@ -482,7 +482,6 @@
482#define __ARCH_WANT_SYS_SIGPENDING 482#define __ARCH_WANT_SYS_SIGPENDING
483#define __ARCH_WANT_SYS_RT_SIGSUSPEND 483#define __ARCH_WANT_SYS_RT_SIGSUSPEND
484#define __ARCH_WANT_SYS_EXECVE 484#define __ARCH_WANT_SYS_EXECVE
485#define __ARCH_WANT_KERNEL_EXECVE
486 485
487/* "Conditional" syscalls. What we want is 486/* "Conditional" syscalls. What we want is
488 487
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index 16e074f9e581..a7607832dd4f 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -603,24 +603,9 @@ ret_from_kernel_thread:
603 mov $9, $27 603 mov $9, $27
604 mov $10, $16 604 mov $10, $16
605 jsr $26, ($9) 605 jsr $26, ($9)
606 ldgp $gp, 0($26)
607 mov $0, $16
608 mov $31, $26
609 jmp $31, sys_exit
610.end ret_from_kernel_thread
611
612 .globl ret_from_kernel_execve
613 .align 4
614 .ent ret_from_kernel_execve
615ret_from_kernel_execve:
616 mov $16, $sp
617 /* Avoid the HAE being gratuitously wrong, to avoid restoring it. */
618 ldq $2, alpha_mv+HAE_CACHE
619 stq $2, 152($sp) /* HAE */
620 mov $31, $19 /* to disable syscall restarts */ 606 mov $31, $19 /* to disable syscall restarts */
621 br $31, ret_to_user 607 br $31, ret_to_user
622 608.end ret_from_kernel_thread
623.end ret_from_kernel_execve
624 609
625 610
626/* 611/*