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. Changes from v2: * Sort the operations based on logical groups. * Add patch 18 for fixing rvt_create_ah prototype. * Add patch 19 for initialize ib_device_ops struct. Changes from V1: * Rebase. * Constify the ib_device_ops. * Remove vertical white spaces. * Clang-format ib_device_ops struct. * Return the descriptive comments into ib_device_ops struct. * Move the assignment of the ib_device operations to the last patch in the patchset. * Remove the existing method assignment at the same time of initializing the ib_device_ops. Thanks, Kamal Kamal Heib (20): 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/rdmavt: Fix rvt_create_ah prototype RDMA/rdmavt: 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 | 28 +- drivers/infiniband/core/ucm.c | 2 +- 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 | 107 ++-- drivers/infiniband/hw/cxgb3/iwch_provider.c | 75 +-- drivers/infiniband/hw/cxgb4/provider.c | 86 ++-- drivers/infiniband/hw/hfi1/verbs.c | 23 +- drivers/infiniband/hw/hns/hns_roce_device.h | 1 + drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 13 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 13 + drivers/infiniband/hw/hns/hns_roce_main.c | 112 +++-- drivers/infiniband/hw/i40iw/i40iw_cm.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 76 +-- drivers/infiniband/hw/mlx4/alias_GUID.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 191 ++++--- drivers/infiniband/hw/mlx5/main.c | 237 +++++---- drivers/infiniband/hw/mthca/mthca_provider.c | 151 ++++-- drivers/infiniband/hw/nes/nes_cm.c | 2 +- drivers/infiniband/hw/nes/nes_verbs.c | 77 +-- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 102 ++-- drivers/infiniband/hw/qedr/main.c | 114 +++-- drivers/infiniband/hw/qib/qib_verbs.c | 10 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 71 +-- drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 92 ++-- drivers/infiniband/sw/rdmavt/ah.c | 4 +- drivers/infiniband/sw/rdmavt/ah.h | 3 +- drivers/infiniband/sw/rdmavt/vt.c | 312 +++--------- drivers/infiniband/sw/rxe/rxe_verbs.c | 102 ++-- 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 +- fs/cifs/smbdirect.c | 2 +- include/rdma/ib_verbs.h | 546 ++++++++++----------- net/rds/ib.c | 4 +- net/sunrpc/xprtrdma/fmr_ops.c | 2 +- 55 files changed, 1654 insertions(+), 1425 deletions(-) -- 2.14.5