ptrace: task_clear_jobctl_trapping()->wake_up_bit() needs mb()

__wake_up_bit() checks waitqueue_active() and thus the caller needs mb()
as wake_up_bit() documents, fix task_clear_jobctl_trapping().

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Oleg Nesterov 2014-06-06 14:36:44 -07:00 committed by Linus Torvalds
parent 4e52365f27
commit 650226bd95
1 changed files with 1 additions and 0 deletions

View File

@ -277,6 +277,7 @@ void task_clear_jobctl_trapping(struct task_struct *task)
{ {
if (unlikely(task->jobctl & JOBCTL_TRAPPING)) { if (unlikely(task->jobctl & JOBCTL_TRAPPING)) {
task->jobctl &= ~JOBCTL_TRAPPING; task->jobctl &= ~JOBCTL_TRAPPING;
smp_mb(); /* advised by wake_up_bit() */
wake_up_bit(&task->jobctl, JOBCTL_TRAPPING_BIT); wake_up_bit(&task->jobctl, JOBCTL_TRAPPING_BIT);
} }
} }