aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-09-06 15:48:11 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-09-30 23:03:02 -0400
commit65f22a906e154e8086ed561904d09c3586de85f4 (patch)
tree8e4b6be4ce56e828e04311579379211358f23170 /arch/s390/include/asm
parent1f02ab4a237086095bd584f3446da307ac2d02e6 (diff)
s390: fold execve_tail() into start_thread(), convert to generic sys_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/s390/include/asm')
-rw-r--r--arch/s390/include/asm/processor.h3
-rw-r--r--arch/s390/include/asm/unistd.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 11e4e3236937..0bc77619c3a3 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -32,6 +32,7 @@ static inline void get_cpu_id(struct cpuid *ptr)
32extern void s390_adjust_jiffies(void); 32extern void s390_adjust_jiffies(void);
33extern const struct seq_operations cpuinfo_op; 33extern const struct seq_operations cpuinfo_op;
34extern int sysctl_ieee_emulation_warnings; 34extern int sysctl_ieee_emulation_warnings;
35extern void execve_tail(void);
35 36
36/* 37/*
37 * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. 38 * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit.
@@ -114,6 +115,7 @@ struct stack_frame {
114 regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \ 115 regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \
115 regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ 116 regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
116 regs->gprs[15] = new_stackp; \ 117 regs->gprs[15] = new_stackp; \
118 execve_tail(); \
117} while (0) 119} while (0)
118 120
119#define start_thread31(regs, new_psw, new_stackp) do { \ 121#define start_thread31(regs, new_psw, new_stackp) do { \
@@ -123,6 +125,7 @@ struct stack_frame {
123 __tlb_flush_mm(current->mm); \ 125 __tlb_flush_mm(current->mm); \
124 crst_table_downgrade(current->mm, 1UL << 31); \ 126 crst_table_downgrade(current->mm, 1UL << 31); \
125 update_mm(current->mm, current); \ 127 update_mm(current->mm, current); \
128 execve_tail(); \
126} while (0) 129} while (0)
127 130
128/* Forward declaration, a strange C thing */ 131/* Forward declaration, a strange C thing */
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index 6756e78f4808..9afacff38edc 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -415,6 +415,7 @@
415# define __ARCH_WANT_COMPAT_SYS_TIME 415# define __ARCH_WANT_COMPAT_SYS_TIME
416# define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND 416# define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
417# endif 417# endif
418#define __ARCH_WANT_SYS_EXECVE
418 419
419/* 420/*
420 * "Conditional" syscalls 421 * "Conditional" syscalls