alloc_workqueue replaces deprecated create_workqueue(). A dedicated workqueue has been used since cm.wq has workitem &cm_id_priv->timewait_info->work.work (maps to cm_work_handler) is involved in normal device operation. When a cm mad is received, it is queued to a cm workqueue for processing. The queued work item references the port and device on which the mad was received. WQ_MEM_RECLAIM has been set to ensure forward progress under memory pressure. Since there are only a fixed number of work items, explicit concurrency limit is unnecessary here. Is the workqueue being used on a memory reclaim path? Does it require WQ_MEM_RECLAIM? Thanks. Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@xxxxxxxxx> --- drivers/infiniband/core/cm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 1d92e09..e335d0b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -4004,7 +4004,7 @@ static int __init ib_cm_init(void) goto error1; } - cm.wq = create_workqueue("ib_cm"); + cm.wq = alloc_workqueue("ib_cm", WQ_MEM_RECLAIM, 0); if (!cm.wq) { ret = -ENOMEM; goto error2; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html