IB/uverbs: Do not use uverbs_cmd_mask in the ioctl path
authorJason Gunthorpe <jgg@mellanox.com>
Fri, 6 Jul 2018 17:42:03 +0000 (11:42 -0600)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 9 Jul 2018 19:19:01 +0000 (13:19 -0600)
Instead we are now checking the function pointers directly. Get rid of
both cases in ioctl and drop the nonsense idea that destroy can fail.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
drivers/infiniband/core/uverbs_std_types_cq.c

index ce9c9c6..5a61543 100644 (file)
@@ -70,7 +70,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(struct ib_device *ib_dev,
        struct ib_uverbs_completion_event_file    *ev_file = NULL;
        struct ib_uobject *ev_file_uobj;
 
-       if (!(ib_dev->uverbs_cmd_mask & 1ULL << IB_USER_VERBS_CMD_CREATE_CQ))
+       if (!ib_dev->create_cq || !ib_dev->destroy_cq)
                return -EOPNOTSUPP;
 
        ret = uverbs_copy_from(&attr.comp_vector, attrs,
@@ -185,9 +185,6 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_DESTROY)(struct ib_device *ib_dev,
 
        obj = container_of(uobj, struct ib_ucq_object, uobject);
 
-       if (!(ib_dev->uverbs_cmd_mask & 1ULL << IB_USER_VERBS_CMD_DESTROY_CQ))
-               return -EOPNOTSUPP;
-
        ret = rdma_explicit_destroy(uobj);
        if (ret)
                return ret;