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 v3: * Rebase. * Sort the operations initialization alphabetically. * Rearrange the operation within the ib_device_ops structure so data path operations are located at the beginning of the struct. * This patch set now depend on a702f6ce0711 ("RDMA/rdmavt: Fix rvt_create_ah function signature"). 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 (18): 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: 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 | 211 ++++++------ 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 | 58 ++-- drivers/infiniband/core/uverbs_main.c | 14 +- drivers/infiniband/core/uverbs_std_types.c | 2 +- .../core/uverbs_std_types_counters.c | 10 +- drivers/infiniband/core/uverbs_std_types_cq.c | 6 +- drivers/infiniband/core/uverbs_std_types_dm.c | 6 +- .../core/uverbs_std_types_flow_action.c | 14 +- drivers/infiniband/core/uverbs_std_types_mr.c | 4 +- drivers/infiniband/core/verbs.c | 159 ++++----- drivers/infiniband/hw/bnxt_re/main.c | 96 +++--- drivers/infiniband/hw/cxgb3/iwch_provider.c | 64 ++-- drivers/infiniband/hw/cxgb4/provider.c | 74 +++-- drivers/infiniband/hw/hfi1/verbs.c | 18 +- drivers/infiniband/hw/hns/hns_roce_device.h | 2 + drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 11 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 18 ++ drivers/infiniband/hw/hns/hns_roce_main.c | 114 ++++--- drivers/infiniband/hw/i40iw/i40iw_cm.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 63 ++-- drivers/infiniband/hw/mlx4/alias_GUID.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 178 +++++----- drivers/infiniband/hw/mlx5/main.c | 230 +++++++------ drivers/infiniband/hw/mthca/mthca_provider.c | 139 +++++--- drivers/infiniband/hw/nes/nes_cm.c | 2 +- drivers/infiniband/hw/nes/nes_verbs.c | 67 ++-- 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 ++-- .../infiniband/hw/vmw_pvrdma/pvrdma_main.c | 82 ++--- drivers/infiniband/sw/rdmavt/vt.c | 299 ++++------------- drivers/infiniband/sw/rxe/rxe_verbs.c | 90 +++--- drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +- drivers/infiniband/ulp/iser/iser_memory.c | 4 +- .../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 | 303 +----------------- include/rdma/uverbs_ioctl.h | 12 +- net/rds/ib.c | 4 +- net/sunrpc/xprtrdma/fmr_ops.c | 2 +- 54 files changed, 1227 insertions(+), 1531 deletions(-) -- 2.19.2