aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/exit.c6
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",