diff options
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 09545d445a55..fd9a28a13afd 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -2357,8 +2357,8 @@ repeat: | |||
2357 | mayday_clear_cpu(cpu, wq->mayday_mask); | 2357 | mayday_clear_cpu(cpu, wq->mayday_mask); |
2358 | 2358 | ||
2359 | /* migrate to the target cpu if possible */ | 2359 | /* migrate to the target cpu if possible */ |
2360 | rescuer->pool = pool; | ||
2361 | worker_maybe_bind_and_lock(pool); | 2360 | worker_maybe_bind_and_lock(pool); |
2361 | rescuer->pool = pool; | ||
2362 | 2362 | ||
2363 | /* | 2363 | /* |
2364 | * Slurp in all works issued via this workqueue and | 2364 | * Slurp in all works issued via this workqueue and |
@@ -2379,6 +2379,7 @@ repeat: | |||
2379 | if (keep_working(pool)) | 2379 | if (keep_working(pool)) |
2380 | wake_up_worker(pool); | 2380 | wake_up_worker(pool); |
2381 | 2381 | ||
2382 | rescuer->pool = NULL; | ||
2382 | spin_unlock_irq(&pool->lock); | 2383 | spin_unlock_irq(&pool->lock); |
2383 | } | 2384 | } |
2384 | 2385 | ||