alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
deprecated create_singlethread_workqueue(). This is the identity
conversion.

The workqueue "event_wq" is involved in event handling and queues
i40iw_cm_event_handler.

The workqueue "disconn_wq" is involved in closing connection and queues
i40iw_disconnect_worker.

Both workqueues have been identity converted.

WQ_MEM_RECLAIM has been set to ensure forward progress under memory
pressure.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriy...@gmail.com>
---
 drivers/infiniband/hw/i40iw/i40iw_cm.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c 
b/drivers/infiniband/hw/i40iw/i40iw_cm.c
index d2fa725..76082b3 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
@@ -3166,8 +3166,11 @@ void i40iw_setup_cm_core(struct i40iw_device *iwdev)
        spin_lock_init(&cm_core->ht_lock);
        spin_lock_init(&cm_core->listen_list_lock);

-       cm_core->event_wq = create_singlethread_workqueue("iwewq");
-       cm_core->disconn_wq = create_singlethread_workqueue("iwdwq");
+       cm_core->event_wq = alloc_ordered_workqueue("iwewq",
+                                                   WQ_MEM_RECLAIM);
+
+       cm_core->disconn_wq = alloc_ordered_workqueue("iwdwq",
+                                                     WQ_MEM_RECLAIM);
 }

 /**
--
2.1.4

Reply via email to