From: Jason Gunthorpe <jgg@mellanox.com>
Date: Fri, 6 Jul 2018 11:42:03 -0600
Subject: IB/uverbs: Do not use uverbs_cmd_mask in the ioctl path
Patch-mainline: v4.19-rc1
Git-commit: 97202bbe22f8f0c225ba63a50acaf56d6796c990
References: bsc#1103992 FATE#326009
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>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
drivers/infiniband/core/uverbs_std_types_cq.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
--- a/drivers/infiniband/core/uverbs_std_types_cq.c
+++ b/drivers/infiniband/core/uverbs_std_types_cq.c
@@ -70,7 +70,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_
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_
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;