cm: Don't allocate ib_cm workqueue with WQ_MEM_RECLAIM
authorSagi Grimberg <sagi@grimberg.me>
Tue, 15 Aug 2017 19:20:37 +0000 (22:20 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 18 Aug 2017 14:46:20 +0000 (10:46 -0400)
create_workqueue always creates the workqueue with WQ_MEM_RECLAIM
and silences a flush dependency warn for WQ_LEGACY. Instead, we
want to keep the warn in case the allocator tries to flush the
cm workqueue because its very likely that cm work execution will
yield memory allocations (for example cm connection requests).

Reported-by: Steve Wise <swise@opengridcomputing.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/cm.c

index 2b4d613a347491295a51932699264c6edcd4bb51..838e3507eadcfbc3e6d919053bcda87cc28309de 100644 (file)
@@ -4201,7 +4201,7 @@ static int __init ib_cm_init(void)
                goto error1;
        }
 
-       cm.wq = create_workqueue("ib_cm");
+       cm.wq = alloc_workqueue("ib_cm", 0, 1);
        if (!cm.wq) {
                ret = -ENOMEM;
                goto error2;