Blob Blame History Raw
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;