sched/wait: Fix a kthread_park race with wait_woken()
authorArve Hjønnevåg <arve@android.com>
Fri, 2 Jun 2023 21:23:46 +0000 (21:23 +0000)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 16 Jun 2023 15:08:01 +0000 (17:08 +0200)
commitef73d6a4ef0b35524125c3cfc6deafc26a0c966a
treec7c854cb2d8ed6157dc87733d955a36947e17fd8
parent0cce0fde499a92c726cd2e24f7763644f7c9f971
sched/wait: Fix a kthread_park race with wait_woken()

kthread_park and wait_woken have a similar race that
kthread_stop and wait_woken used to have before it was fixed in
commit cb6538e740d7 ("sched/wait: Fix a kthread race with
wait_woken()"). Extend that fix to also cover kthread_park.

[jstultz: Made changes suggested by Peter to optimize
 memory loads]

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
Link: https://lore.kernel.org/r/20230602212350.535358-1-jstultz@google.com
include/linux/kthread.h
kernel/kthread.c
kernel/sched/wait.c