This patchset introduce a new structure that will contain all the infiniband device operations, the structure will be used by the providers to initialize their supported operations. This patchset also includes the required changes in the core and ulps to start using it. Thanks, Kamal Kamal Heib (18): RDMA/core: Introduce ib_device_ops RDMA/bnxt_re: Initialize ib_device_ops struct RDMA/cxgb3: Initialize ib_device_ops struct RDMA/cxgb4: Initialize ib_device_ops struct RDMA/hfi1: Initialize ib_device_ops struct RDMA/hns: Initialize ib_device_ops struct RDMA/i40iw: Initialize ib_device_ops struct RDMA/mlx4: Initialize ib_device_ops struct RDMA/mlx5: Initialize ib_device_ops struct RDMA/mthca: Initialize ib_device_ops struct RDMA/nes: Initialize ib_device_ops struct RDMA/ocrdma: Initialize ib_device_ops struct RDMA/qedr: Initialize ib_device_ops struct RDMA/qib: Initialize ib_device_ops struct RDMA/usnic: Initialize ib_device_ops struct RDMA/vmw_pvrdma: Initialize ib_device_ops struct RDMA/rxe: Initialize ib_device_ops struct RDMA: Start use ib_device_ops drivers/infiniband/core/cache.c | 12 +- drivers/infiniband/core/core_priv.h | 12 +- drivers/infiniband/core/cq.c | 6 +- drivers/infiniband/core/device.c | 136 +++++++++++-- drivers/infiniband/core/fmr_pool.c | 4 +- drivers/infiniband/core/mad.c | 24 +-- drivers/infiniband/core/nldev.c | 4 +- drivers/infiniband/core/opa_smi.h | 4 +- drivers/infiniband/core/rdma_core.c | 6 +- drivers/infiniband/core/security.c | 8 +- drivers/infiniband/core/smi.h | 4 +- drivers/infiniband/core/sysfs.c | 26 +-- drivers/infiniband/core/uverbs_cmd.c | 64 +++--- drivers/infiniband/core/uverbs_main.c | 14 +- drivers/infiniband/core/uverbs_std_types.c | 2 +- .../infiniband/core/uverbs_std_types_counters.c | 10 +- drivers/infiniband/core/uverbs_std_types_cq.c | 4 +- drivers/infiniband/core/uverbs_std_types_dm.c | 6 +- .../infiniband/core/uverbs_std_types_flow_action.c | 14 +- drivers/infiniband/core/uverbs_std_types_mr.c | 4 +- drivers/infiniband/core/verbs.c | 149 +++++++------- drivers/infiniband/hw/bnxt_re/main.c | 97 +++++---- drivers/infiniband/hw/cxgb3/iwch_provider.c | 64 +++--- drivers/infiniband/hw/cxgb4/provider.c | 74 +++---- drivers/infiniband/hw/hfi1/verbs.c | 19 +- drivers/infiniband/hw/hns/hns_roce_device.h | 1 + drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 11 ++ drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 11 ++ drivers/infiniband/hw/hns/hns_roce_main.c | 91 ++++----- drivers/infiniband/hw/i40iw/i40iw_cm.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 66 ++++--- drivers/infiniband/hw/mlx4/alias_GUID.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 166 +++++++++------- drivers/infiniband/hw/mlx5/main.c | 220 ++++++++++++--------- drivers/infiniband/hw/mthca/mthca_provider.c | 139 ++++++++----- drivers/infiniband/hw/nes/nes_cm.c | 2 +- drivers/infiniband/hw/nes/nes_verbs.c | 66 ++++--- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 92 ++++----- drivers/infiniband/hw/qedr/main.c | 103 +++++----- drivers/infiniband/hw/qib/qib_verbs.c | 8 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 61 +++--- drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 82 ++++---- drivers/infiniband/sw/rdmavt/vt.c | 90 ++++----- drivers/infiniband/sw/rxe/rxe_verbs.c | 90 +++++---- drivers/infiniband/ulp/ipoib/ipoib_main.c | 12 +- drivers/infiniband/ulp/iser/iser_memory.c | 4 +- drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c | 8 +- drivers/infiniband/ulp/srp/ib_srp.c | 6 +- include/rdma/ib_verbs.h | 212 ++++++++------------ net/sunrpc/xprtrdma/fmr_ops.c | 2 +- 50 files changed, 1257 insertions(+), 1057 deletions(-) -- 2.14.4