Hi Linus, These are the proposed RDMA patches for 5.8. A more active cycle than most of the recent past. In particular the new RNBD block driver was Ack'd by Jens and is flowing through RDMA due to it also introducing a new ULP. Also a heads up, Mellanox has been acquired by NVIDIA and you'll probably see a new email address from me and others this next cycle. Thanks, Jason The following changes since commit 6b646a7e4af69814dd1a3340fca0f02d4977420d: net/mlx5: Add ability to read and write ECE options (2020-05-27 14:08:28 +0300) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus for you to fetch changes up to fba97dc7fc76b2c9a909fa0b3786d30a9899f5cf: RDMA/cm: Spurious WARNING triggered in cm_destroy_id() (2020-06-03 15:48:18 -0300) ---------------------------------------------------------------- RDMA 5.8 merge window pull request A few large, long discussed works this time. The RNBD block driver has been posted for nearly two years now, and the removal of FMR has been a recurring discussion theme for a long time. The usual smattering of features and bug fixes. - Various small driver bugs fixes in rxe, mlx5, hfi1, and efa - Continuing driver cleanups in bnxt_re, hns - Big cleanup of mlx5 QP creation flows - More consistent use of src port and flow label when LAG is used and a mlx5 implementation - Additional set of cleanups for IB CM - 'RNBD' network block driver and target. This is a network block RDMA device specific to ionos's cloud environment. It brings strong multipath and resiliency capabilities. - Accelerated IPoIB for HFI1 - QP/WQ/SRQ ioctl migration for uverbs, and support for multiple async fds - Support for exchanging the new IBTA defiend ECE data during RDMA CM exchanges - Removal of the very old and insecure FMR interface from all ULPs and drivers. FRWR should be preferred for at least a decade now. ---------------------------------------------------------------- Aharon Landau (2): RDMA/mlx5: Verify that QP is created with RQ or SQ RDMA/mlx5: Add init2init as a modify command Bart Van Assche (4): RDMA/srp: Make the channel count configurable per target RDMA/srpt: Make debug output more detailed RDMA/srpt: Reduce max_recv_sge to 1 RDMA/srpt: Increase max_send_sge Chuck Lever (1): RDMA/core: Move and rename trace_cm_id_create() Colin Ian King (3): RDMA/mlx5: Remove duplicated assignment to variable rcqe_sz RDMA/hns: remove duplicate assignment to pointer raq IB/hfi1: Fix spelling mistake "enought" -> "enough" Dan Carpenter (5): RDMA/rtrs: Fix some signedness bugs in error handling RDMA/rtrs: Fix a couple off by one bugs in rtrs_srv_rdma_done() block/rnbd: Fix an IS_ERR() vs NULL check in find_or_create_sess() IB/hfi1: Fix hfi1_netdev_rx_init() error handling RDMA/hns: Uninitialized variable in modify_qp_init_to_rtr() Danil Kipnis (3): rnbd/rtrs: Pass max segment size from blk user to the rdma library RDMA/rnbd: Fix compilation error when CONFIG_MODULES is disabled RDMA/rtrs: Get rid of the do_next_path while_next_path macros Danit Goldberg (1): RDMA/cm: Remove unused store to ret in cm_rej_handler Daria Velikovsky (1): RDMA/mlx5: Add support for drop action in DV steering Devesh Sharma (4): RDMA/bnxt_re: Reduce device page size detection code RDMA/bnxt_re: Update missing hsi data structures RDMA/bnxt_re: Simplify obtaining queue entry from hw ring RDMA/bnxt_re: Remove dead code from rcfw Gal Pressman (6): RDMA/efa: Report create CQ error counter RDMA/efa: Count mmap failures RDMA/efa: Count admin commands errors RDMA/efa: Fix setting of wrong bit in get/set_feature commands RDMA/efa: Report host information to the device RDMA/mlx5: Remove FMR leftovers Gary Leshner (6): IB/hfi1: Add functions to transmit datagram ipoib packets IB/hfi1: Add the transmit side of a datagram ipoib RDMA netdev IB/hfi1: Remove module parameter for KDETH qpns IB/{rdmavt, hfi1}: Implement creation of accelerated UD QPs IB/{hfi1, ipoib, rdma}: Broadcast ping sent packets which exceeded mtu size IB/ipoib: Add capability to switch between datagram and connected mode Grzegorz Andrejczuk (6): IB/hfi1: RSM rules for AIP IB/hfi1: Rename num_vnic_contexts as num_netdev_contexts IB/hfi1: Add interrupt handler functions for accelerated ipoib IB/hfi1: Add rx functions for dummy netdev IB/hfi1: Activate the dummy netdev IB/hfi1: Add packet histogram trace event Gustavo A. R. Silva (4): IB/rdmavt: Replace zero-length array with flexible-array RDMA/rtrs: client: Fix function return on success RDMA/siw: Replace one-element array and use struct_size() helper RDMA/core: Use sizeof_field() helper Israel Rukshin (1): RDMA/iser: Remove support for FMR memory registration Jack Wang (25): sysfs: export sysfs_remove_file_self() RDMA/rtrs: public interface header to establish RDMA connections RDMA/rtrs: private headers with rtrs protocol structs and helpers RDMA/rtrs: core: lib functions shared between client and server modules RDMA/rtrs: client: private header with client structs and functions RDMA/rtrs: client: main functionality RDMA/rtrs: client: statistics functions RDMA/rtrs: client: sysfs interface functions RDMA/rtrs: server: private header with server structs and functions RDMA/rtrs: server: main functionality RDMA/rtrs: server: statistics functions RDMA/rtrs: server: sysfs interface functions RDMA/rtrs: include client and server modules into kernel compilation RDMA/rtrs: a bit of documentation block/rnbd: private headers with rnbd protocol structs and helpers block/rnbd: client: private header with client structs and functions block/rnbd: client: main functionality block/rnbd: client: sysfs interface functions block/rnbd: server: private header with server structs and functions block/rnbd: server: main functionality block/rnbd: server: functionality for IO submitting to block dev block/rnbd: server: sysfs interface functions block/rnbd: include client and server modules into kernel compilation block/rnbd: a bit of documentation MAINTAINERS: Add maintainers for RNBD/RTRS modules Jason Gunthorpe (24): RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated RDMA: Remove a few extra calls to ib_get_client_data() Merge branch 'mlx5_ib_qp_refactor_1' into rdma.git for-next Merge branch 'mellanox/mlx5-next' into rdma.git for-next RDMA: Allow ib_client's to fail when add() is called RDMA/addr: Mark addr_resolve as might_sleep() RDMA/cm: Remove return code from add_cm_id_to_port_list RDMA/cm: Pull duplicated code into cm_queue_work_unlock() RDMA/cm: Pass the cm_id_private into cm_cleanup_timewait RDMA/cm: Add a note explaining how the timewait is eventually freed RDMA/cm: Make find_remote_id() return a cm_id_private RDMA/cm: Remove the cm_free_id() wrapper function RDMA/cm: Remove needless cm_id variable RDMA/cm: Increment the refcount inside cm_find_listen() Merge branch 'mellanox/mlx5-next' into rdma.git for/next RDMA/core: Consolidate ib_create_srq flows Merge tag 'v5.7-rc6' into rdma.git for-next RDMA/core: Allow the ioctl layer to abort a fully created uobject Merge branch 'mellanox/mlx5-next' into rdma.git for/next RDMA/core: Use offsetofend() instead of open coding RDMA/bnxt_re: Remove FMR leftovers RDMA/i40iw: Remove FMR leftovers RDMA: Remove 'max_fmr' RDMA: Remove 'max_map_per_fmr' Ka-Cheong Poon (1): RDMA/cm: Spurious WARNING triggered in cm_destroy_id() Kaike Wan (3): IB/hfi1: Add accelerated IP capability bit IB/ipoib: Increase ipoib Datagram mode MTU's upper limit IB/hfi1: Add functions to receive accelerated ipoib packets Kamal Heib (2): RDMA/srpt: Fix disabling device management RDMA/ipoib: Remove can_sleep parameter from iboib_mcast_alloc Lang Cheng (11): RDMA/hns: Simplify the qp state convert code RDMA/hns: Simplify the cqe code of poll cq RDMA/hns: Simplify the state judgment code of qp RDMA/hns: Simplify the status judgment code of hns_roce_v1_m_qp() RDMA/hns: Combine enable flags of qp RDMA/hns: Fix cmdq parameter of querying pf timer resource RDMA/hns: Store mr len information into mr obj RDMA/hns: Let software PI/CI grow naturally RDMA/hns: Add CQ flag instead of independent enable flag RDMA/hns: Optimize post and poll process RDMA/hns: Simplify process related to poll cq Leon Romanovsky (57): RDMA/cma: Limit the scope of rdma_is_consumer_reject function RDMA/bnxt: Delete 'nq_ptr' variable which is not used RDMA/mlx5: Organize QP types checks in one place RDMA/mlx5: Delete impossible GSI port check RDMA/mlx5: Perform check if QP creation flow is valid RDMA/mlx5: Prepare QP allocation for future removal RDMA/mlx5: Avoid setting redundant NULL for XRC QPs RDMA/mlx5: Set QP subtype immediately when it is known RDMA/mlx5: Separate create QP flows to be based on type RDMA/mlx5: Split scatter CQE configuration for DCT QP RDMA/mlx5: Update all DRIVER QP places to use QP subtype RDMA/mlx5: Move DRIVER QP flags check into separate function RDMA/mlx5: Remove second copy from user for non RSS RAW QPs RDMA/mlx5: Initial separation of RAW_PACKET QP from common flow RDMA/mlx5: Delete create QP flags obfuscation RDMA/mlx5: Process create QP flags in one place RDMA/mlx5: Use flags_en mechanism to mark QP created with WQE signature RDMA/mlx5: Change scatter CQE flag to be set like other vendor flags RDMA/mlx5: Return all configured create flags through query QP RDMA/mlx5: Process all vendor flags in one place RDMA/mlx5: Delete unsupported QP types RDMA/mlx5: Store QP type in the vendor QP structure RDMA/mlx5: Promote RSS RAW QP attribute check in higher level RDMA/mlx5: Combine copy of create QP command in RSS RAW QP RDMA/mlx5: Remove second user copy in create_user_qp RDMA/mlx5: Rely on existence of udata to separate kernel/user flows RDMA/mlx5: Delete impossible inlen check RDMA/mlx5: Globally parse DEVX UID RDMA/mlx5: Separate XRC_TGT QP creation from common flow RDMA/mlx5: Separate to user/kernel create QP flows RDMA/mlx5: Reduce amount of duplication in QP destroy RDMA/mlx5: Group all create QP parameters to simplify in-kernel interfaces RDMA/mlx5: Promote RSS RAW QP flags check to higher level RDMA/mlx5: Handle udate outlen checks in one place RDMA/mlx5: Copy response to the user in one place RDMA/mlx5: Remove redundant destroy QP call RDMA/mlx5: Consolidate into special function all create QP calls RDMA/mlx5: Update mlx5_ib to use new cmd interface RDMA/mlx5: Move all WR logic from qp.c to separate file RDMA/ucma: Return stable IB device index as identifier RDMA/mlx5: Fix query_srq_cmd() function RDMA/cm: Add Enhanced Connection Establishment (ECE) bits RDMA/ucma: Extend ucma_connect to receive ECE parameters RDMA/ucma: Deliver ECE parameters through UCMA events RDMA/cm: Send and receive ECE parameter over the wire RDMA/cma: Connect ECE to rdma_accept RDMA/cma: Provide ECE reject reason RDMA/mlx5: Get ECE options from FW during create QP RDMA/mlx5: Set ECE options during QP create RDMA/mlx5: Use direct modify QP implementation RDMA/mlx5: Remove manually crafted QP context the query call RDMA/mlx5: Convert modify QP to use MLX5_SET macros RDMA/mlx5: Set ECE options during modify QP RDMA/mlx5: Return ECE data after modify QP RDMA/mlx5: Return an error if copy_to_user fails RDMA/mlx5: Don't rely on FW to set zeros in ECE response RDMA/mlx5: Return ECE DC support Lijun Ou (4): RDMA/hns: Optimize hns_roce_config_link_table() RDMA/hns: Optimize hns_roce_v2_set_mac() RDMA/hns: Bugfix for querying qkey RDMA/hns: Reserve one sge in order to avoid local length error Maor Gottlieb (10): RDMA: Group create AH arguments in struct RDMA/core: Add LAG functionality RDMA/core: Get xmit slave for LAG RDMA/mlx5: Refactor affinity related code RDMA/mlx5: Set lag tx affinity according to slave RDMA/mad: Remove snoop interface RDMA/core: Consider flow label when building skb RDMA/mlx5: Refactor DV create flow RDMA/mlx5: Add support in steering default miss IB/cma: Fix ports memory leak in cma_configfs Mark Bloch (2): RDMA/mlx5: Assign profile before calling stages RDMA/mlx5: Allow only raw Ethernet QPs when RoCE isn't enabled Mark Zhang (6): RDMA/core: Add hash functions to calculate RoCEv2 flowlabel and UDP source port RDMA/mlx5: Define RoCEv2 udp source port when set path RDMA/cma: Initialize the flow label of CM's route path record RDMA/mlx5: Set UDP source port based on the grh.flow_label IB/mlx5: Fix DEVX support for MLX5_CMD_OP_INIT2INIT_QP command RDMA/mlx5: Support TX port affinity for VF drivers in LAG mode Mauro Carvalho Chehab (1): IB: Fix some documentation warnings Max Gurtovoy (9): RDMA/rw: use DIV_ROUND_UP to calculate nr_ops RDMA/mlx5: Refactor mlx5_post_send() to improve readability RDMA/srp: Remove support for FMR memory registration RDMA/rds: Remove FMR support for memory registration RDMA/core: Remove FMR pool API RDMA/mlx4: Remove FMR support for memory registration RDMA/mthca: Remove FMR support for memory registration RDMA/rdmavt: Remove FMR memory registration RDMA/core: Remove FMR device ops Md Haris Iqbal (1): RDMA/rtrs: server: Use already dereferenced rtrs_sess structure Piotr Stankiewicz (1): IB/hfi1: Enable the transmit side of the datagram ipoib netdev Potnuri Bharat Teja (1): RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove Qiushi Wu (1): RDMA/core: Fix several reference count leaks. Shay Drory (1): RDMA/mlx5: Update mlx5_ib driver name Wei Yongjun (1): RDMA/rtrs: server: Fix some error return code Weihang Li (9): RDMA/hns: Fix comments with non-English symbols RDMA/hns: Adjust lp_pktn_ini dynamically RDMA/hns: Extend capability flags for HIP08_C RDMA/hns: Fix wrong assignment of SRQ's max_wr RDMA/hns: Fix error with to_hr_hem_entries_count() RDMA/hns: Remove redundant memcpy() RDMA/hns: Change all page_shift to unsigned RDMA/hns: Change variables representing quantity to unsigned RDMA/hns: Remove redundant type cast for general pointers Wenpeng Liang (3): RDMA/hns: Remove redundant assignment of caps RDMA/hns: Fix assignment to ba_pg_sz of eqe RDMA/hns: Remove redundant parameters from free_srq/qp_wrid() Xi Wang (14): RDMA/hns: Add support for addressing when hopnum is 0 RDMA/hns: Optimize hns buffer allocation flow RDMA/hns: Optimize 0 hop addressing for EQE buffer RDMA/hns: Support 0 hop addressing for WQE buffer RDMA/hns: Support 0 hop addressing for SRQ buffer RDMA/hns: Support 0 hop addressing for CQE buffer RDMA/hns: Optimize PBL buffer allocation process RDMA/hns: Remove unused MTT functions RDMA/hns: Optimize WQE buffer size calculating process RDMA/hns: Optimize SRQ buffer size calculating process RDMA/hns: Rename macro for defining hns hardware page size RDMA/hns: Rename QP buffer related function RDMA/hns: Refactor the QP context filling process related to WQE buffer configure RDMA/hns: Optimize the usage of MTR Xiongfeng Wang (1): RDMA/srpt: Add a newline when printing parameter 'srpt_service_guid' by sysfs Yamin Friedman (2): RDMA/core: Add protection for shared CQs used by ULPs RDMA/core: Introduce shared CQ pool API Yangyang Li (1): RDMA/hns: Remove unused code about assert Yishai Hadas (9): RDMA/mlx5: Fix udata response upon SRQ creation RDMA/uverbs: Cleanup wq/srq context usage from uverbs layer RDMA/uverbs: Fix create WQ to use the given user handle IB/uverbs: Refactor related objects to use their own asynchronous event FD IB/uverbs: Extend CQ to get its own asynchronous event FD IB/uverbs: Move QP, SRQ, WQ type and flags to UAPI IB/uverbs: Introduce create/destroy SRQ commands over ioctl IB/uverbs: Introduce create/destroy WQ commands over ioctl IB/uverbs: Introduce create/destroy QP commands over ioctl Yixian Liu (2): RDMA/hns: Move SRQ code to the reasonable place RDMA/hns: Make the end of sge process more clear YueHaibing (1): IB/hfi1: Use free_netdev() in hfi1_netdev_free() Zhu Yanjun (1): RDMA/rxe: Set default vendor ID Zou Wei (1): IB/qib: Remove unused variable ret Documentation/ABI/testing/sysfs-block-rnbd | 46 + Documentation/ABI/testing/sysfs-class-rnbd-client | 111 + Documentation/ABI/testing/sysfs-class-rnbd-server | 50 + Documentation/ABI/testing/sysfs-class-rtrs-client | 131 + Documentation/ABI/testing/sysfs-class-rtrs-server | 53 + Documentation/driver-api/infiniband.rst | 3 - Documentation/infiniband/core_locking.rst | 2 - MAINTAINERS | 14 + drivers/block/Kconfig | 2 + drivers/block/Makefile | 1 + drivers/block/rnbd/Kconfig | 28 + drivers/block/rnbd/Makefile | 15 + drivers/block/rnbd/README | 92 + drivers/block/rnbd/rnbd-clt-sysfs.c | 639 ++++ drivers/block/rnbd/rnbd-clt.c | 1729 +++++++++ drivers/block/rnbd/rnbd-clt.h | 156 + drivers/block/rnbd/rnbd-common.c | 23 + drivers/block/rnbd/rnbd-log.h | 41 + drivers/block/rnbd/rnbd-proto.h | 303 ++ drivers/block/rnbd/rnbd-srv-dev.c | 134 + drivers/block/rnbd/rnbd-srv-dev.h | 92 + drivers/block/rnbd/rnbd-srv-sysfs.c | 215 ++ drivers/block/rnbd/rnbd-srv.c | 844 +++++ drivers/block/rnbd/rnbd-srv.h | 78 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/Makefile | 9 +- drivers/infiniband/core/addr.c | 4 + drivers/infiniband/core/cm.c | 306 +- drivers/infiniband/core/cma.c | 114 +- drivers/infiniband/core/cma_configfs.c | 13 + drivers/infiniband/core/cma_priv.h | 1 + drivers/infiniband/core/cma_trace.h | 20 +- drivers/infiniband/core/core_priv.h | 3 + drivers/infiniband/core/cq.c | 173 + drivers/infiniband/core/device.c | 22 +- drivers/infiniband/core/fmr_pool.c | 494 --- drivers/infiniband/core/lag.c | 138 + drivers/infiniband/core/mad.c | 255 +- drivers/infiniband/core/multicast.c | 12 +- drivers/infiniband/core/rdma_core.c | 25 +- drivers/infiniband/core/rdma_core.h | 7 +- drivers/infiniband/core/rw.c | 2 +- drivers/infiniband/core/sa_query.c | 51 +- drivers/infiniband/core/sysfs.c | 10 +- drivers/infiniband/core/ucma.c | 65 +- drivers/infiniband/core/ud_header.c | 2 +- drivers/infiniband/core/user_mad.c | 22 +- drivers/infiniband/core/uverbs.h | 21 +- drivers/infiniband/core/uverbs_cmd.c | 76 +- drivers/infiniband/core/uverbs_ioctl.c | 24 +- drivers/infiniband/core/uverbs_main.c | 40 +- drivers/infiniband/core/uverbs_std_types.c | 95 - drivers/infiniband/core/uverbs_std_types_cq.c | 17 +- drivers/infiniband/core/uverbs_std_types_mr.c | 12 +- drivers/infiniband/core/uverbs_std_types_qp.c | 401 ++ drivers/infiniband/core/uverbs_std_types_srq.c | 234 ++ drivers/infiniband/core/uverbs_std_types_wq.c | 194 + drivers/infiniband/core/uverbs_uapi.c | 3 + drivers/infiniband/core/verbs.c | 159 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 76 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 18 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 357 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 42 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 88 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 91 - drivers/infiniband/hw/bnxt_re/qplib_res.c | 1 + drivers/infiniband/hw/bnxt_re/qplib_res.h | 53 + drivers/infiniband/hw/bnxt_re/qplib_sp.c | 3 - drivers/infiniband/hw/bnxt_re/qplib_sp.h | 2 - drivers/infiniband/hw/bnxt_re/roce_hsi.h | 106 + drivers/infiniband/hw/cxgb4/device.c | 1 + drivers/infiniband/hw/efa/efa.h | 6 +- drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 63 +- drivers/infiniband/hw/efa/efa_com.c | 5 +- drivers/infiniband/hw/efa/efa_com.h | 3 +- drivers/infiniband/hw/efa/efa_com_cmd.c | 18 +- drivers/infiniband/hw/efa/efa_com_cmd.h | 11 +- drivers/infiniband/hw/efa/efa_main.c | 52 +- drivers/infiniband/hw/efa/efa_verbs.c | 19 +- drivers/infiniband/hw/hfi1/Makefile | 4 + drivers/infiniband/hw/hfi1/affinity.c | 12 +- drivers/infiniband/hw/hfi1/affinity.h | 3 +- drivers/infiniband/hw/hfi1/chip.c | 303 +- drivers/infiniband/hw/hfi1/chip.h | 5 +- drivers/infiniband/hw/hfi1/common.h | 13 +- drivers/infiniband/hw/hfi1/driver.c | 231 +- drivers/infiniband/hw/hfi1/file_ops.c | 4 +- drivers/infiniband/hw/hfi1/hfi.h | 38 +- drivers/infiniband/hw/hfi1/init.c | 13 +- drivers/infiniband/hw/hfi1/ipoib.h | 171 + drivers/infiniband/hw/hfi1/ipoib_main.c | 309 ++ drivers/infiniband/hw/hfi1/ipoib_rx.c | 95 + drivers/infiniband/hw/hfi1/ipoib_tx.c | 828 +++++ drivers/infiniband/hw/hfi1/msix.c | 36 +- drivers/infiniband/hw/hfi1/msix.h | 7 +- drivers/infiniband/hw/hfi1/netdev.h | 118 + drivers/infiniband/hw/hfi1/netdev_rx.c | 481 +++ drivers/infiniband/hw/hfi1/qp.c | 18 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 4 +- drivers/infiniband/hw/hfi1/trace.c | 42 +- drivers/infiniband/hw/hfi1/trace_ctxts.h | 11 +- drivers/infiniband/hw/hfi1/verbs.c | 14 +- drivers/infiniband/hw/hfi1/vnic.h | 5 +- drivers/infiniband/hw/hfi1/vnic_main.c | 325 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/hw/hns/hns_roce_alloc.c | 148 +- drivers/infiniband/hw/hns/hns_roce_common.h | 4 - drivers/infiniband/hw/hns/hns_roce_cq.c | 351 +- drivers/infiniband/hw/hns/hns_roce_device.h | 246 +- drivers/infiniband/hw/hns/hns_roce_hem.c | 114 +- drivers/infiniband/hw/hns/hns_roce_hem.h | 11 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 360 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 1713 ++++----- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 15 +- drivers/infiniband/hw/hns/hns_roce_main.c | 71 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 1644 +++------ drivers/infiniband/hw/hns/hns_roce_qp.c | 509 +-- drivers/infiniband/hw/hns/hns_roce_srq.c | 378 +- drivers/infiniband/hw/i40iw/i40iw.h | 9 - drivers/infiniband/hw/i40iw/i40iw_verbs.c | 1 - drivers/infiniband/hw/i40iw/i40iw_verbs.h | 1 - drivers/infiniband/hw/mlx4/ah.c | 11 +- drivers/infiniband/hw/mlx4/main.c | 11 - drivers/infiniband/hw/mlx4/mlx4_ib.h | 18 +- drivers/infiniband/hw/mlx4/mr.c | 93 - drivers/infiniband/hw/mlx5/Makefile | 3 +- drivers/infiniband/hw/mlx5/ah.c | 35 +- drivers/infiniband/hw/mlx5/cmd.c | 114 +- drivers/infiniband/hw/mlx5/cmd.h | 4 +- drivers/infiniband/hw/mlx5/cong.c | 4 +- drivers/infiniband/hw/mlx5/devx.c | 17 +- drivers/infiniband/hw/mlx5/flow.c | 147 +- drivers/infiniband/hw/mlx5/gsi.c | 38 +- drivers/infiniband/hw/mlx5/ib_rep.h | 2 +- drivers/infiniband/hw/mlx5/main.c | 73 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 72 +- drivers/infiniband/hw/mlx5/odp.c | 10 +- drivers/infiniband/hw/mlx5/qos.c | 13 +- drivers/infiniband/hw/mlx5/qp.c | 4098 ++++++++------------- drivers/infiniband/hw/mlx5/qp.h | 6 +- drivers/infiniband/hw/mlx5/qpc.c | 44 +- drivers/infiniband/hw/mlx5/srq.c | 10 +- drivers/infiniband/hw/mlx5/srq_cmd.c | 111 +- drivers/infiniband/hw/mlx5/wr.c | 1504 ++++++++ drivers/infiniband/hw/mlx5/wr.h | 76 + drivers/infiniband/hw/mthca/mthca_dev.h | 10 - drivers/infiniband/hw/mthca/mthca_mr.c | 262 +- drivers/infiniband/hw/mthca/mthca_provider.c | 105 +- drivers/infiniband/hw/mthca/mthca_provider.h | 23 - drivers/infiniband/hw/ocrdma/ocrdma.h | 1 - drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 3 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 1 - drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 - drivers/infiniband/hw/qedr/main.c | 1 - drivers/infiniband/hw/qedr/qedr.h | 1 - drivers/infiniband/hw/qedr/verbs.c | 6 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/qib/qib_iba7322.c | 7 +- drivers/infiniband/hw/qib/qib_verbs.c | 1 - drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 1 - drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 5 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/ah.c | 11 +- drivers/infiniband/sw/rdmavt/ah.h | 4 +- drivers/infiniband/sw/rdmavt/mr.c | 155 - drivers/infiniband/sw/rdmavt/mr.h | 15 - drivers/infiniband/sw/rdmavt/qp.c | 24 +- drivers/infiniband/sw/rdmavt/vt.c | 4 - drivers/infiniband/sw/rxe/rxe.c | 1 + drivers/infiniband/sw/rxe/rxe_param.h | 3 + drivers/infiniband/sw/rxe/rxe_verbs.c | 9 +- drivers/infiniband/sw/siw/siw.h | 4 +- drivers/infiniband/sw/siw/siw_main.c | 1 - drivers/infiniband/sw/siw/siw_mem.c | 5 +- drivers/infiniband/sw/siw/siw_verbs.c | 1 - drivers/infiniband/ulp/Makefile | 1 + drivers/infiniband/ulp/ipoib/ipoib_main.c | 37 +- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 23 +- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 + drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 3 + drivers/infiniband/ulp/iser/iscsi_iser.h | 79 +- drivers/infiniband/ulp/iser/iser_initiator.c | 19 +- drivers/infiniband/ulp/iser/iser_memory.c | 188 +- drivers/infiniband/ulp/iser/iser_verbs.c | 126 +- drivers/infiniband/ulp/isert/ib_isert.c | 5 +- drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 12 +- drivers/infiniband/ulp/rtrs/Kconfig | 27 + drivers/infiniband/ulp/rtrs/Makefile | 15 + drivers/infiniband/ulp/rtrs/README | 213 ++ drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 200 + drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 483 +++ drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2992 +++++++++++++++ drivers/infiniband/ulp/rtrs/rtrs-clt.h | 252 ++ drivers/infiniband/ulp/rtrs/rtrs-log.h | 28 + drivers/infiniband/ulp/rtrs/rtrs-pri.h | 399 ++ drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 38 + drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 321 ++ drivers/infiniband/ulp/rtrs/rtrs-srv.c | 2178 +++++++++++ drivers/infiniband/ulp/rtrs/rtrs-srv.h | 148 + drivers/infiniband/ulp/rtrs/rtrs.c | 612 +++ drivers/infiniband/ulp/rtrs/rtrs.h | 196 + drivers/infiniband/ulp/srp/ib_srp.c | 265 +- drivers/infiniband/ulp/srp/ib_srp.h | 27 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 67 +- drivers/infiniband/ulp/srpt/ib_srpt.h | 5 - drivers/net/ethernet/mellanox/mlx4/main.c | 2 - drivers/net/ethernet/mellanox/mlx4/mr.c | 183 - drivers/net/ethernet/qlogic/qed/qed_rdma.c | 1 - drivers/net/ethernet/qlogic/qed/qed_rdma.h | 1 - drivers/nvme/target/rdma.c | 4 +- fs/sysfs/file.c | 1 + include/linux/mlx4/device.h | 22 +- include/linux/mlx5/mlx5_ifc.h | 9 +- include/linux/mlx5/qp.h | 68 +- include/linux/qed/qed_rdma_if.h | 1 - include/rdma/ib_cm.h | 9 +- include/rdma/ib_fmr_pool.h | 93 - include/rdma/ib_mad.h | 49 +- include/rdma/ib_verbs.h | 298 +- include/rdma/ibta_vol1_c12.h | 6 + include/rdma/lag.h | 23 + include/rdma/opa_port_info.h | 10 +- include/rdma/opa_vnic.h | 4 +- include/rdma/rdma_cm.h | 17 +- include/rdma/rdmavt_qp.h | 31 +- include/rdma/uverbs_ioctl.h | 18 +- include/rdma/uverbs_std_types.h | 2 +- include/rdma/uverbs_types.h | 3 +- include/uapi/rdma/hfi/hfi1_user.h | 3 +- include/uapi/rdma/ib_user_ioctl_cmds.h | 81 + include/uapi/rdma/ib_user_ioctl_verbs.h | 43 + include/uapi/rdma/mlx5-abi.h | 9 +- include/uapi/rdma/mlx5_user_ioctl_cmds.h | 6 + include/uapi/rdma/rdma_user_cm.h | 15 +- net/rds/Makefile | 2 +- net/rds/ib.c | 43 +- net/rds/ib.h | 2 - net/rds/ib_cm.c | 8 +- net/rds/ib_fmr.c | 269 -- net/rds/ib_frmr.c | 4 +- net/rds/ib_mr.h | 14 +- net/rds/ib_rdma.c | 28 +- net/smc/smc_ib.c | 13 +- 244 files changed, 24030 insertions(+), 11025 deletions(-) (diffstat from tag for-linus-merged)