diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-04-15 06:55:07 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-05-20 02:58:47 -0400 |
commit | d3a73acbc26a4a81a01a35fd162973e53d0386f5 (patch) | |
tree | 5b8fd3880f3b38575b1a043f3f4f07623a633bd1 /arch/s390/kernel/compat_signal.c | |
parent | beef560b4cdfafb2211a856e1d722540f5151933 (diff) |
s390: split TIF bits into CIF, PIF and TIF bits
The oi and ni instructions used in entry[64].S to set and clear bits
in the thread-flags are not guaranteed to be atomic in regard to other
CPUs. Split the TIF bits into CPU, pt_regs and thread-info specific
bits. Updates on the TIF bits are done with atomic instructions,
updates on CPU and pt_regs bits are done with non-atomic instructions.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/compat_signal.c')
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 7df5ed9f44d7..f204d6920368 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -213,7 +213,7 @@ static int restore_sigregs32(struct pt_regs *regs,_sigregs32 __user *sregs) | |||
213 | sizeof(current->thread.fp_regs)); | 213 | sizeof(current->thread.fp_regs)); |
214 | 214 | ||
215 | restore_fp_regs(current->thread.fp_regs.fprs); | 215 | restore_fp_regs(current->thread.fp_regs.fprs); |
216 | clear_thread_flag(TIF_SYSCALL); /* No longer in a system call */ | 216 | clear_pt_regs_flag(regs, PIF_SYSCALL); /* No longer in a system call */ |
217 | return 0; | 217 | return 0; |
218 | } | 218 | } |
219 | 219 | ||