Hello all, This RFC allows device drivers to indicate their support for in-kernel API through a flag in the IB device. Currently, devices that do not support in-kernel APIs (such as usnic) have no way to communicate that to the ULPs which try to use the device and fail. Instead, make the driver advertise its support upfront and allow clients to exit gracefully in case of unsupported device. Patch #1 adds the flag to the IB device, sets all existing drivers as kernel verbs providers and chanes the IB clients. Patch #2 changes usnic driver to a non-kernel verbs provider as it offers no kernel API support. This RFC is introduced following the discussion over the EFA driver [1], which initially does not provide in-kernel API support. [1] https://patchwork.kernel.org/cover/10711629/ Thanks, Gal Gal Pressman (2): RDMA: Add indication for in kernel API support to IB device IB/usnic: Mark device as a non kernel verbs provider drivers/infiniband/core/cm.c | 3 +++ drivers/infiniband/core/cma.c | 3 +++ drivers/infiniband/core/mad.c | 3 +++ drivers/infiniband/core/multicast.c | 3 +++ drivers/infiniband/core/sa_query.c | 3 +++ drivers/infiniband/core/ucm.c | 3 ++- drivers/infiniband/core/user_mad.c | 3 +++ drivers/infiniband/hw/bnxt_re/main.c | 1 + drivers/infiniband/hw/cxgb3/iwch_provider.c | 1 + drivers/infiniband/hw/cxgb4/provider.c | 1 + drivers/infiniband/hw/hns/hns_roce_main.c | 1 + drivers/infiniband/hw/i40iw/i40iw_verbs.c | 1 + drivers/infiniband/hw/mlx4/main.c | 1 + drivers/infiniband/hw/mlx5/main.c | 1 + drivers/infiniband/hw/mthca/mthca_provider.c | 1 + drivers/infiniband/hw/nes/nes_verbs.c | 1 + drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 + drivers/infiniband/hw/qedr/main.c | 1 + drivers/infiniband/hw/usnic/usnic_ib_main.c | 1 + drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 1 + drivers/infiniband/sw/rdmavt/vt.c | 1 + drivers/infiniband/sw/rxe/rxe_verbs.c | 1 + drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +++ drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 3 +++ drivers/infiniband/ulp/srpt/ib_srpt.c | 3 +++ include/rdma/ib_verbs.h | 1 + net/rds/ib.c | 4 ++-- net/smc/smc_ib.c | 2 +- 29 files changed, 49 insertions(+), 5 deletions(-) -- 2.7.4