summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/workqueue.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 5cb1dd0a49fb..af00e63182d0 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -5681,9 +5681,6 @@ struct workqueue_struct *alloc_workqueue(const char *fmt,
if (alloc_and_link_pwqs(wq) < 0)
goto err_free_node_nr_active;
- if (wq_online && init_rescuer(wq) < 0)
- goto err_destroy;
-
/*
* wq_pool_mutex protects global freeze state and workqueues list.
* Grab it, adjust max_active and add the new @wq to workqueues
@@ -5699,6 +5696,9 @@ struct workqueue_struct *alloc_workqueue(const char *fmt,
mutex_unlock(&wq_pool_mutex);
+ if (wq_online && init_rescuer(wq) < 0)
+ goto err_destroy;
+
if ((wq->flags & WQ_SYSFS) && workqueue_sysfs_register(wq))
goto err_destroy;