diff options
-rw-r--r-- | kernel/exit.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 6ca1e4666e9f..3b8dfffd9329 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -931,13 +931,13 @@ fastcall NORET_TYPE void do_exit(long code) | |||
931 | schedule(); | 931 | schedule(); |
932 | } | 932 | } |
933 | 933 | ||
934 | tsk->flags |= PF_EXITING; | ||
934 | /* | 935 | /* |
935 | * tsk->flags are checked in the futex code to protect against | 936 | * tsk->flags are checked in the futex code to protect against |
936 | * an exiting task cleaning up the robust pi futexes. | 937 | * an exiting task cleaning up the robust pi futexes. |
937 | */ | 938 | */ |
938 | spin_lock_irq(&tsk->pi_lock); | 939 | smp_mb(); |
939 | tsk->flags |= PF_EXITING; | 940 | spin_unlock_wait(&tsk->pi_lock); |
940 | spin_unlock_irq(&tsk->pi_lock); | ||
941 | 941 | ||
942 | if (unlikely(in_atomic())) | 942 | if (unlikely(in_atomic())) |
943 | printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n", | 943 | printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n", |