aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/uverbs_main.c
diff options
context:
space:
mode:
authorGal Pressman <galpress@amazon.com>2019-01-22 10:08:22 +0200
committerJason Gunthorpe <jgg@mellanox.com>2019-01-30 20:32:25 -0700
commit6780c4fa9d6e091b2f206ac429a40e2e8d2e45f3 (patch)
treed53b9ef08b0a56df944b780549bd81674afdb6d3 /drivers/infiniband/core/uverbs_main.c
parentRDMA: Provide safe ib_alloc_device() function (diff)
downloadlinux-dev-6780c4fa9d6e091b2f206ac429a40e2e8d2e45f3.tar.xz
linux-dev-6780c4fa9d6e091b2f206ac429a40e2e8d2e45f3.zip
RDMA: Add indication for in kernel API support to IB device
Drivers that do not provide kernel verbs support should not be used by ib kernel clients at all. In case a device does not implement all mandatory verbs for kverbs usage mark it as a non kverbs provider and prevent its usage for all clients except for uverbs. The device is marked as a non kverbs provider using the 'kverbs_provider' flag which should only be set by the core code. The clients can choose whether kverbs are requested for its usage using the 'no_kverbs_req' flag which is currently set for uverbs only. This patch allows drivers to remove mandatory verbs stubs and simply set the callbacks to NULL. The IB device will be registered as a non-kverbs provider. Note that verbs that are required for the device registration process must be implemented. Signed-off-by: Gal Pressman <galpress@amazon.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/core/uverbs_main.c')
-rw-r--r--drivers/infiniband/core/uverbs_main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 996f167d1436..d628747e058c 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -1151,6 +1151,7 @@ static const struct file_operations uverbs_mmap_fops = {
static struct ib_client uverbs_client = {
.name = "uverbs",
+ .no_kverbs_req = true,
.add = ib_uverbs_add_one,
.remove = ib_uverbs_remove_one
};