diff options
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 4026d1871407..ddee541ea97a 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -4266,7 +4266,7 @@ struct workqueue_struct *alloc_workqueue(const char *fmt, | |||
4266 | INIT_LIST_HEAD(&wq->list); | 4266 | INIT_LIST_HEAD(&wq->list); |
4267 | 4267 | ||
4268 | if (alloc_and_link_pwqs(wq) < 0) | 4268 | if (alloc_and_link_pwqs(wq) < 0) |
4269 | goto err_free_wq; | 4269 | goto err_unreg_lockdep; |
4270 | 4270 | ||
4271 | if (wq_online && init_rescuer(wq) < 0) | 4271 | if (wq_online && init_rescuer(wq) < 0) |
4272 | goto err_destroy; | 4272 | goto err_destroy; |
@@ -4292,9 +4292,10 @@ struct workqueue_struct *alloc_workqueue(const char *fmt, | |||
4292 | 4292 | ||
4293 | return wq; | 4293 | return wq; |
4294 | 4294 | ||
4295 | err_free_wq: | 4295 | err_unreg_lockdep: |
4296 | wq_unregister_lockdep(wq); | 4296 | wq_unregister_lockdep(wq); |
4297 | wq_free_lockdep(wq); | 4297 | wq_free_lockdep(wq); |
4298 | err_free_wq: | ||
4298 | free_workqueue_attrs(wq->unbound_attrs); | 4299 | free_workqueue_attrs(wq->unbound_attrs); |
4299 | kfree(wq); | 4300 | kfree(wq); |
4300 | return NULL; | 4301 | return NULL; |