diff options
Diffstat (limited to 'arch/s390/include/asm/processor.h')
-rw-r--r-- | arch/s390/include/asm/processor.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 56831dfa9198..94e749c90230 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h | |||
@@ -35,6 +35,7 @@ static inline void get_cpu_id(struct cpuid *ptr) | |||
35 | extern void s390_adjust_jiffies(void); | 35 | extern void s390_adjust_jiffies(void); |
36 | extern const struct seq_operations cpuinfo_op; | 36 | extern const struct seq_operations cpuinfo_op; |
37 | extern int sysctl_ieee_emulation_warnings; | 37 | extern int sysctl_ieee_emulation_warnings; |
38 | extern void execve_tail(void); | ||
38 | 39 | ||
39 | /* | 40 | /* |
40 | * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. | 41 | * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. |
@@ -126,6 +127,7 @@ struct stack_frame { | |||
126 | regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \ | 127 | regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \ |
127 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ | 128 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ |
128 | regs->gprs[15] = new_stackp; \ | 129 | regs->gprs[15] = new_stackp; \ |
130 | execve_tail(); \ | ||
129 | } while (0) | 131 | } while (0) |
130 | 132 | ||
131 | #define start_thread31(regs, new_psw, new_stackp) do { \ | 133 | #define start_thread31(regs, new_psw, new_stackp) do { \ |
@@ -135,6 +137,7 @@ struct stack_frame { | |||
135 | __tlb_flush_mm(current->mm); \ | 137 | __tlb_flush_mm(current->mm); \ |
136 | crst_table_downgrade(current->mm, 1UL << 31); \ | 138 | crst_table_downgrade(current->mm, 1UL << 31); \ |
137 | update_mm(current->mm, current); \ | 139 | update_mm(current->mm, current); \ |
140 | execve_tail(); \ | ||
138 | } while (0) | 141 | } while (0) |
139 | 142 | ||
140 | /* Forward declaration, a strange C thing */ | 143 | /* Forward declaration, a strange C thing */ |
@@ -150,7 +153,6 @@ static inline void show_cacheinfo(struct seq_file *m) { } | |||
150 | 153 | ||
151 | /* Free all resources held by a thread. */ | 154 | /* Free all resources held by a thread. */ |
152 | extern void release_thread(struct task_struct *); | 155 | extern void release_thread(struct task_struct *); |
153 | extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); | ||
154 | 156 | ||
155 | /* | 157 | /* |
156 | * Return saved PC of a blocked thread. | 158 | * Return saved PC of a blocked thread. |