diff options
author | Doug Ledford <dledford@redhat.com> | 2015-12-22 22:03:15 (GMT) |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2015-12-22 22:03:15 (GMT) |
commit | 882f3b3b916a01c703bf7516800a0dca741cd3e7 (patch) | |
tree | 3a67f04a2b31985bb8044d39f0f5ebd9858658ae /drivers/infiniband/core/device.c | |
parent | 182a2da0c768a9ec64abb0d6009667057f1c06af (diff) | |
parent | c6333f9f9f7646e311248a09e8ed96126a97aba8 (diff) | |
download | linux-882f3b3b916a01c703bf7516800a0dca741cd3e7.tar.xz |
Merge branches '4.5/Or-cleanup' and '4.5/rdma-cq' into k.o/for-4.5
Signed-off-by: Doug Ledford <dledford@redhat.com>
Conflicts:
drivers/infiniband/ulp/iser/iser_verbs.c
Diffstat (limited to 'drivers/infiniband/core/device.c')
-rw-r--r-- | drivers/infiniband/core/device.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 6def2f7..cce7a65 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -58,6 +58,7 @@ struct ib_client_data { bool going_down; }; +struct workqueue_struct *ib_comp_wq; struct workqueue_struct *ib_wq; EXPORT_SYMBOL_GPL(ib_wq); @@ -943,10 +944,18 @@ static int __init ib_core_init(void) if (!ib_wq) return -ENOMEM; + ib_comp_wq = alloc_workqueue("ib-comp-wq", + WQ_UNBOUND | WQ_HIGHPRI | WQ_MEM_RECLAIM, + WQ_UNBOUND_MAX_ACTIVE); + if (!ib_comp_wq) { + ret = -ENOMEM; + goto err; + } + ret = class_register(&ib_class); if (ret) { printk(KERN_WARNING "Couldn't create InfiniBand device class\n"); - goto err; + goto err_comp; } ret = ibnl_init(); @@ -961,7 +970,8 @@ static int __init ib_core_init(void) err_sysfs: class_unregister(&ib_class); - +err_comp: + destroy_workqueue(ib_comp_wq); err: destroy_workqueue(ib_wq); return ret; @@ -972,6 +982,7 @@ static void __exit ib_core_cleanup(void) ib_cache_cleanup(); ibnl_cleanup(); class_unregister(&ib_class); + destroy_workqueue(ib_comp_wq); /* Make sure that any pending umem accounting work is done. */ destroy_workqueue(ib_wq); } |