IB/ipoib: Remove deprecated create_singlethread_workqueue
authorBhaktipriya Shridhar <bhaktipriya96@gmail.com>
Mon, 15 Aug 2016 18:14:26 +0000 (23:44 +0530)
committerDoug Ledford <dledford@redhat.com>
Fri, 7 Oct 2016 20:54:32 +0000 (16:54 -0400)
alloc_ordered_workqueue() replaces deprecated
create_singlethread_workqueue().

The workqueue "ipoib_workqueue" that is used for all flush operations
for the device.

WQ_MEM_RECLAIM has been set since the flush operations may need to
complete in order for other network functions to continue, and
the memory reclaim operation might need the network functioning in
order to make progress.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/ipoib/ipoib_main.c

index 74bcaa0..e95c02e 100644 (file)
@@ -2196,7 +2196,8 @@ static int __init ipoib_init_module(void)
         * its private workqueue, and we only queue up flush events
         * on our global flush workqueue.  This avoids the deadlocks.
         */
-       ipoib_workqueue = create_singlethread_workqueue("ipoib_flush");
+       ipoib_workqueue = alloc_ordered_workqueue("ipoib_flush",
+                                                 WQ_MEM_RECLAIM);
        if (!ipoib_workqueue) {
                ret = -ENOMEM;
                goto err_fs;