diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-06 15:48:11 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-30 23:03:02 -0400 |
commit | 65f22a906e154e8086ed561904d09c3586de85f4 (patch) | |
tree | 8e4b6be4ce56e828e04311579379211358f23170 /arch/s390/include | |
parent | 1f02ab4a237086095bd584f3446da307ac2d02e6 (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')
-rw-r--r-- | arch/s390/include/asm/processor.h | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/unistd.h | 1 |
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) | |||
32 | extern void s390_adjust_jiffies(void); | 32 | extern void s390_adjust_jiffies(void); |
33 | extern const struct seq_operations cpuinfo_op; | 33 | extern const struct seq_operations cpuinfo_op; |
34 | extern int sysctl_ieee_emulation_warnings; | 34 | extern int sysctl_ieee_emulation_warnings; |
35 | extern 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 |