RDMA/core: Remove query_pkey from the mandatory ops
authorKamal Heib <kamalheib1@gmail.com>
Tue, 14 Jul 2020 18:34:10 +0000 (21:34 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 20 Jul 2020 19:18:16 +0000 (16:18 -0300)
The query_pkey() isn't mandatory for the iwarp providers, so remove this
requirement from the RDMA core.

Link: https://lore.kernel.org/r/20200714183414.61069-4-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/device.c

index b2d617e..d293b82 100644 (file)
@@ -272,7 +272,6 @@ static void ib_device_check_mandatory(struct ib_device *device)
        } mandatory_table[] = {
                IB_MANDATORY_FUNC(query_device),
                IB_MANDATORY_FUNC(query_port),
-               IB_MANDATORY_FUNC(query_pkey),
                IB_MANDATORY_FUNC(alloc_pd),
                IB_MANDATORY_FUNC(dealloc_pd),
                IB_MANDATORY_FUNC(create_qp),
@@ -2362,6 +2361,9 @@ int ib_query_pkey(struct ib_device *device,
        if (!rdma_is_port_valid(device, port_num))
                return -EINVAL;
 
+       if (!device->ops.query_pkey)
+               return -EOPNOTSUPP;
+
        return device->ops.query_pkey(device, port_num, index, pkey);
 }
 EXPORT_SYMBOL(ib_query_pkey);