RDMA/uverbs: Fix create WQ to use the given user handle
authorYishai Hadas <yishaih@mellanox.com>
Wed, 6 May 2020 08:24:42 +0000 (11:24 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Sun, 17 May 2020 23:29:32 +0000 (20:29 -0300)
Fix create WQ to use the given user handle, in addition dropped some
duplicated code from this flow.

Fixes: fd3c7904db6e ("IB/core: Change idr objects to use the new schema")
Fixes: f213c0527210 ("IB/uverbs: Add WQ support")
Link: https://lore.kernel.org/r/20200506082444.14502-9-leon@kernel.org
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/uverbs_cmd.c

index dc8fe1a..e03f3a4 100644 (file)
@@ -2958,6 +2958,7 @@ static int ib_uverbs_ex_create_wq(struct uverbs_attr_bundle *attrs)
        wq_init_attr.event_handler = ib_uverbs_wq_event_handler;
        wq_init_attr.create_flags = cmd.create_flags;
        INIT_LIST_HEAD(&obj->uevent.event_list);
+       obj->uevent.uobject.user_handle = cmd.user_handle;
 
        wq = pd->device->ops.create_wq(pd, &wq_init_attr, &attrs->driver_udata);
        if (IS_ERR(wq)) {
@@ -2974,8 +2975,6 @@ static int ib_uverbs_ex_create_wq(struct uverbs_attr_bundle *attrs)
        atomic_set(&wq->usecnt, 0);
        atomic_inc(&pd->usecnt);
        atomic_inc(&cq->usecnt);
-       wq->uobject = obj;
-       obj->uevent.uobject.object = wq;
 
        memset(&resp, 0, sizeof(resp));
        resp.wq_handle = obj->uevent.uobject.id;