diff options
Diffstat (limited to 'arch/s390/include/asm/processor.h')
-rw-r--r-- | arch/s390/include/asm/processor.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index ca7821f07260..0a876bc543d3 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h | |||
@@ -134,19 +134,17 @@ struct stack_frame { | |||
134 | * Do necessary setup to start up a new thread. | 134 | * Do necessary setup to start up a new thread. |
135 | */ | 135 | */ |
136 | #define start_thread(regs, new_psw, new_stackp) do { \ | 136 | #define start_thread(regs, new_psw, new_stackp) do { \ |
137 | regs->psw.mask = psw_user_bits | PSW_MASK_EA | PSW_MASK_BA; \ | 137 | regs->psw.mask = PSW_USER_BITS | PSW_MASK_EA | PSW_MASK_BA; \ |
138 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ | 138 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ |
139 | regs->gprs[15] = new_stackp; \ | 139 | regs->gprs[15] = new_stackp; \ |
140 | execve_tail(); \ | 140 | execve_tail(); \ |
141 | } while (0) | 141 | } while (0) |
142 | 142 | ||
143 | #define start_thread31(regs, new_psw, new_stackp) do { \ | 143 | #define start_thread31(regs, new_psw, new_stackp) do { \ |
144 | regs->psw.mask = psw_user_bits | PSW_MASK_BA; \ | 144 | regs->psw.mask = PSW_USER_BITS | PSW_MASK_BA; \ |
145 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ | 145 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ |
146 | regs->gprs[15] = new_stackp; \ | 146 | regs->gprs[15] = new_stackp; \ |
147 | __tlb_flush_mm(current->mm); \ | ||
148 | crst_table_downgrade(current->mm, 1UL << 31); \ | 147 | crst_table_downgrade(current->mm, 1UL << 31); \ |
149 | update_mm(current->mm, current); \ | ||
150 | execve_tail(); \ | 148 | execve_tail(); \ |
151 | } while (0) | 149 | } while (0) |
152 | 150 | ||
@@ -169,17 +167,15 @@ extern void release_thread(struct task_struct *); | |||
169 | */ | 167 | */ |
170 | extern unsigned long thread_saved_pc(struct task_struct *t); | 168 | extern unsigned long thread_saved_pc(struct task_struct *t); |
171 | 169 | ||
172 | extern void show_code(struct pt_regs *regs); | ||
173 | extern void print_fn_code(unsigned char *code, unsigned long len); | ||
174 | extern int insn_to_mnemonic(unsigned char *instruction, char *buf, | ||
175 | unsigned int len); | ||
176 | |||
177 | unsigned long get_wchan(struct task_struct *p); | 170 | unsigned long get_wchan(struct task_struct *p); |
178 | #define task_pt_regs(tsk) ((struct pt_regs *) \ | 171 | #define task_pt_regs(tsk) ((struct pt_regs *) \ |
179 | (task_stack_page(tsk) + THREAD_SIZE) - 1) | 172 | (task_stack_page(tsk) + THREAD_SIZE) - 1) |
180 | #define KSTK_EIP(tsk) (task_pt_regs(tsk)->psw.addr) | 173 | #define KSTK_EIP(tsk) (task_pt_regs(tsk)->psw.addr) |
181 | #define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15]) | 174 | #define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15]) |
182 | 175 | ||
176 | /* Has task runtime instrumentation enabled ? */ | ||
177 | #define is_ri_task(tsk) (!!(tsk)->thread.ri_cb) | ||
178 | |||
183 | static inline unsigned short stap(void) | 179 | static inline unsigned short stap(void) |
184 | { | 180 | { |
185 | unsigned short cpu_address; | 181 | unsigned short cpu_address; |
@@ -348,9 +344,9 @@ __set_psw_mask(unsigned long mask) | |||
348 | } | 344 | } |
349 | 345 | ||
350 | #define local_mcck_enable() \ | 346 | #define local_mcck_enable() \ |
351 | __set_psw_mask(psw_kernel_bits | PSW_MASK_DAT | PSW_MASK_MCHECK) | 347 | __set_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT | PSW_MASK_MCHECK) |
352 | #define local_mcck_disable() \ | 348 | #define local_mcck_disable() \ |
353 | __set_psw_mask(psw_kernel_bits | PSW_MASK_DAT) | 349 | __set_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT) |
354 | 350 | ||
355 | /* | 351 | /* |
356 | * Basic Machine Check/Program Check Handler. | 352 | * Basic Machine Check/Program Check Handler. |