diff options
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 4cfcd027e4bf..4f8d72dae0e8 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -1663,6 +1663,9 @@ static void worker_detach_from_pool(struct worker *worker, | |||
1663 | detach_completion = pool->detach_completion; | 1663 | detach_completion = pool->detach_completion; |
1664 | mutex_unlock(&pool->attach_mutex); | 1664 | mutex_unlock(&pool->attach_mutex); |
1665 | 1665 | ||
1666 | /* clear leftover flags without pool->lock after it is detached */ | ||
1667 | worker->flags &= ~(WORKER_UNBOUND | WORKER_REBOUND); | ||
1668 | |||
1666 | if (detach_completion) | 1669 | if (detach_completion) |
1667 | complete(detach_completion); | 1670 | complete(detach_completion); |
1668 | } | 1671 | } |