Hi Linus, These are the proposed RDMA patches for 5.9. A quiet cycle after the larger 5.8 effort. Substantially cleanup and driver work with a few smaller features this time. There is one conflict with Kees's removal of uninitialized_var - resolve by taking the RDMA version of the conflicting hunks to delete the local variables. The tag for-linus-merged with my merge resolution to your tree is also available for reference. Thanks, Jason The following changes since commit 2d1b69ed65ee033aa541518cc9f6a815296ac493: net/mlx5: kTLS, Improve TLS params layout structures (2020-06-27 13:50:46 -0700) 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 23fcc7dee2c6aba1060558683988263851e74bab: RDMA/mlx5: Fix flow destination setting for RDMA TX flow table (2020-08-05 21:09:39 -0300) ---------------------------------------------------------------- RDMA 5.9 merge window pull request Smaller set of RDMA updates. A smaller number of 'big topics' with the majority of changes being driver updates. - Driver updates for hfi1, rxe, mlx5, hns, qedr, usnic, bnxt_re - Removal of dead or redundant code across the drivers - RAW resource tracker dumps to include a device specific data blob for device objects to aide device debugging - Further advance the IOCTL interface, remove the ability to turn it off. Add QUERY_CONTEXT, QUERY_MR, and QUERY_PD commands - Remove stubs related to devices with no pkey table - A shared CQ scheme to allow multiple ULPs to share the CQ rings of a device to give higher performance - Several more static checker, syzkaller and rare crashers fixed ---------------------------------------------------------------- Bolarinwa Olayemi Saheed (1): IB/hfi1: Convert PCIBIOS_* errors to generic -E* errors Christophe JAILLET (1): RDMA/usnic: switch from 'pci_' to 'dma_' API Chuck Lever (1): RDMA/core: Clean up tracepoint headers Colton Lewis (1): RDMA: Correct trivial kernel-doc inconsistencies Danil Kipnis (1): RDMA/rtrs-clt: add an additional random 8 seconds before reconnecting Daria Velikovsky (1): RDMA/mlx5: Init dest_type when create flow Devesh Sharma (6): RDMA/bnxt_re: introduce wqe mode to select execution path RDMA/bnxt_re: introduce a function to allocate swq RDMA/bnxt_re: Pull psn buffer dynamically based on prod RDMA/bnxt_re: Add helper data structures RDMA/bnxt_re: Change wr posting logic to accommodate variable wqes RDMA/bnxt_re: Update maintainers for Broadcom rdma driver Eli Cohen (3): net/mlx5: Support setting access rights of dma addresses net/mlx5: Add VDPA interface type to supported enumerations net/mlx5: Add interface changes required for VDPA Eric Dumazet (1): RDMA/umem: Add a schedule point in ib_umem_get() Gal Pressman (8): RDMA/core: Check for error instead of success in alloc MR function RDMA/core: Remove ib_alloc_mr_user function RDMA: Remove the udata parameter from alloc_mr callback RDMA/mlx5: Remove unused to_mibmr function RDMA/efa: Expose maximum TX doorbell batch RDMA/efa: Expose minimum SQ size RDMA/efa: User/kernel compatibility handshake mechanism RDMA/efa: Add EFA 0xefa1 PCI ID Gustavo A. R. Silva (2): IB/hfi1: Remove unnecessary fall-through markings IB/hfi1: Use fallthrough pseudo-keyword Jack Wang (1): RDMA/rtrs: remove WQ_MEM_RECLAIM for rtrs_wq Jason Gunthorpe (9): Merge branch 'raw_dumps' into rdma.git for-next RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah() RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued() Merge branch 'mlx5_ipoib_qpn' into rdma.git for-next Merge branch 'mlx5_uar' into rdma.git /for-next RDMA/cma: Simplify DEVICE_REMOVAL for internal_id RDMA/cma: Using the standard locking pattern when delivering the removal event RDMA/cma: Remove unneeded locking for req paths RDMA/cma: Execute rdma_cm destruction from a handler properly Jing Xiangfeng (1): IB/srpt: Remove WARN_ON from srpt_cm_req_recv Kamal Heib (16): RDMA/ipoib: Return void from ipoib_mcast_stop_thread() RDMA/hfi1: Remove hfi1_create_qp declaration RDMA/rxe: Remove unused rxe_mem_map_pages RDMA/ipoib: Return void from ipoib_ib_dev_stop() RDMA/rxe: Drop pointless checks in rxe_init_ports RDMA/rxe: Return void from rxe_init_port_param() RDMA/rxe: Return void from rxe_mem_init_dma() RDMA/rxe: Remove rxe_link_layer() RDMA/core: Expose pkeys sysfs files only if pkey_tbl_len is set RDMA/core: Allocate the pkey cache only if the pkey_tbl_len is set RDMA/core: Remove query_pkey from the mandatory ops RDMA/siw: Remove the query_pkey callback RDMA/cxgb4: Remove the query_pkey callback RDMA/i40iw: Remove the query_pkey callback RDMA/qedr: Remove the query_pkey callback RDMA/rxe: Remove pkey table Lang Cheng (4): RDMA/hns: Remove redundant hardware opcode definitions RDMA/hns: Remove support for HIP08_A RDMA/hns: Delete unnecessary memset when allocating VF resource RDMA/hns: Fix error during modify qp RTS2RTS Leon Romanovsky (16): RDMA/core: Delete not-used create RWQ table function RDMA/mlx5: Get XRCD number directly for the internal use RDMA/core: Create and destroy counters in the ib_core RDMA: Move XRCD to be under ib_core responsibility RDMA/mlx5: Limit the scope of mlx5_ib_enable_driver function RDMA/mlx5: Separate restrack callbacks initialization from main.c RDMA/mlx5: Separate counters from main.c RDMA/mlx5: Separate flow steering logic from main.c RDMA/mlx5: Cleanup DEVX initialization flow RDMA/mlx5: Delete one-time used functions RDMA/core: Align abort/commit object scheme for write() and ioctl() paths RDMA/core: Update write interface to use automatic object lifetime RDMA/uverbs: Remove redundant assignments RDMA/uverbs: Silence shiftTooManyBitsSigned warning RDMA/mlx5: Delete unreachable code RDMA/include: Replace license text with SPDX tags Li Heng (1): RDMA/core: Fix return error value in _ib_modify_qp() to negative Maor Gottlieb (14): RDMA/core: Don't call fill_res_entry for PD RDMA: Add dedicated MR resource tracker function RDMA: Add a dedicated CQ resource tracker function RDMA: Add dedicated QP resource tracker function RDMA: Add dedicated CM_ID resource tracker function RDMA: Add support to dump resource tracker in RAW format RDMA/mlx5: Add support to get QP resource in RAW format RDMA/mlx5: Add support to get CQ resource in RAW format RDMA/mlx5: Add support to get MR resource in RAW format RDMA/mlx5: Introduce ODP prefetch counter RDMA/core: Clean ib_alloc_xrcd() and reuse it to allocate XRC domain RDMA/core: Optimize XRC target lookup RDMA/mlx5: Allow SQ modification RDMA/mlx5: Add missing srcu_read_lock in ODP implicit flow Mark Zhang (4): RDMA/counter: Add PID category support in auto mode RDMA/counter: Only bind user QPs in auto mode RDMA/counter: Allow manually bind QPs with different pids to same counter RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP Max Gurtovoy (1): IB/isert: allocate RW ctxs according to max IO size Meir Lichtinger (3): RDMA/mlx5: ConnectX-7 new capabilities to set relaxed ordering by UMR RDMA/mlx5: Use MLX5_SET macro instead of local structure RDMA/mlx5: Set mkey relaxed ordering by UMR with ConnectX-7 Michael Guralnik (4): net/mlx5: Enable QP number request when creating IPoIB underlay QP RDMA/ipoib: Handle user-supplied address when creating child net/mlx5: Enable count action for rules with allow action RDMA/mlx5: Fix flow destination setting for RDMA TX flow table Michal Kalderon (2): RDMA/qedr: Add EDPM mode type for user-fw compatibility RDMA/qedr: Add EDPM max size to alloc ucontext response Mikhail Malygin (1): RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue Pavel Machek (1): RDMA/mlx5: Fix typo in enum name Randy Dunlap (1): RDMA: rdma_user_ioctl.h: fix a duplicated word + clarify Shay Drory (3): IB/mad: Issue complete whenever decrements agent refcount IB/mad: Change atomics to refcount API IB/mad: Delete RMPP_STATE_CANCELING state Weihang Li (2): RDMA/hns: Refactor hns_roce_v2_set_hem() RDMA/hns: Remove redundant parameters in set_rc_wqe() Xi Wang (2): RDMA/hns: Optimize MTR level-0 addressing to access huge page RDMA/hns: Fix the unneeded process when getting a general type of CQE error Yamin Friedman (3): IB/iser: use new shared CQ mechanism IB/isert: use new shared CQ mechanism IB/srpt: use new shared CQ mechanism Yishai Hadas (7): IB/uverbs: Enable CQ ioctl commands by default IB/uverbs: Set IOVA on IB MR in uverbs layer IB/uverbs: Expose UAPI to query ucontext RDMA/mlx5: Refactor mlx5_ib_alloc_ucontext() response RDMA/mlx5: Implement the query ucontext functionality RDMA/mlx5: Introduce UAPI to query PD attributes IB/uverbs: Expose UAPI to query MR Yuval Basson (1): RDMA/qedr: SRQ's bug fixes Zhu Yanjun (1): RDMA/rxe: Skip dgid check in loopback mode MAINTAINERS | 1 + drivers/infiniband/Kconfig | 8 - drivers/infiniband/core/cache.c | 45 +- drivers/infiniband/core/cma.c | 257 +- drivers/infiniband/core/counters.c | 24 +- drivers/infiniband/core/device.c | 28 +- drivers/infiniband/core/mad.c | 30 +- drivers/infiniband/core/mad_priv.h | 2 +- drivers/infiniband/core/mad_rmpp.c | 27 +- drivers/infiniband/core/nldev.c | 223 +- drivers/infiniband/core/sysfs.c | 61 +- drivers/infiniband/core/trace.c | 2 - drivers/infiniband/core/umem.c | 1 + drivers/infiniband/core/umem_odp.c | 2 + drivers/infiniband/core/uverbs_cmd.c | 321 +- drivers/infiniband/core/uverbs_ioctl.c | 1 + drivers/infiniband/core/uverbs_main.c | 4 + .../infiniband/core/uverbs_std_types_counters.c | 17 +- drivers/infiniband/core/uverbs_std_types_cq.c | 3 - drivers/infiniband/core/uverbs_std_types_device.c | 48 +- drivers/infiniband/core/uverbs_std_types_mr.c | 54 +- drivers/infiniband/core/verbs.c | 185 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 170 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 10 +- drivers/infiniband/hw/bnxt_re/main.c | 23 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 751 ++-- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 127 +- drivers/infiniband/hw/bnxt_re/qplib_res.h | 58 +- drivers/infiniband/hw/bnxt_re/roce_hsi.h | 1 + drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 9 +- drivers/infiniband/hw/cxgb4/mem.c | 3 +- drivers/infiniband/hw/cxgb4/provider.c | 22 +- drivers/infiniband/hw/cxgb4/restrack.c | 24 +- drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 15 +- drivers/infiniband/hw/efa/efa_com_cmd.c | 2 + drivers/infiniband/hw/efa/efa_com_cmd.h | 2 + drivers/infiniband/hw/efa/efa_main.c | 6 +- drivers/infiniband/hw/efa/efa_verbs.c | 42 + drivers/infiniband/hw/hfi1/chip.c | 27 +- drivers/infiniband/hw/hfi1/firmware.c | 16 - drivers/infiniband/hw/hfi1/mad.c | 9 +- drivers/infiniband/hw/hfi1/pcie.c | 22 +- drivers/infiniband/hw/hfi1/pio.c | 2 +- drivers/infiniband/hw/hfi1/pio_copy.c | 12 +- drivers/infiniband/hw/hfi1/platform.c | 10 +- drivers/infiniband/hw/hfi1/qp.c | 2 +- drivers/infiniband/hw/hfi1/qp.h | 14 - drivers/infiniband/hw/hfi1/qsfp.c | 4 +- drivers/infiniband/hw/hfi1/rc.c | 25 +- drivers/infiniband/hw/hfi1/sdma.c | 9 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 4 +- drivers/infiniband/hw/hfi1/uc.c | 8 +- drivers/infiniband/hw/hns/hns_roce_device.h | 31 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 7 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 253 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 19 +- drivers/infiniband/hw/hns/hns_roce_main.c | 2 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 210 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 10 - drivers/infiniband/hw/hns/hns_roce_restrack.c | 14 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 22 +- drivers/infiniband/hw/mlx4/main.c | 37 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/mr.c | 3 +- drivers/infiniband/hw/mlx5/Makefile | 6 +- drivers/infiniband/hw/mlx5/cmd.c | 12 - drivers/infiniband/hw/mlx5/cmd.h | 1 - drivers/infiniband/hw/mlx5/counters.c | 709 ++++ drivers/infiniband/hw/mlx5/counters.h | 17 + drivers/infiniband/hw/mlx5/devx.c | 102 +- drivers/infiniband/hw/mlx5/devx.h | 45 + drivers/infiniband/hw/mlx5/flow.c | 765 ---- drivers/infiniband/hw/mlx5/fs.c | 2516 +++++++++++ drivers/infiniband/hw/mlx5/fs.h | 29 + drivers/infiniband/hw/mlx5/main.c | 4380 +++++--------------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 109 +- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/mlx5/odp.c | 28 +- drivers/infiniband/hw/mlx5/qp.c | 71 +- drivers/infiniband/hw/mlx5/qp.h | 1 + drivers/infiniband/hw/mlx5/restrack.c | 121 +- drivers/infiniband/hw/mlx5/restrack.h | 13 + drivers/infiniband/hw/mlx5/srq.c | 4 +- drivers/infiniband/hw/mlx5/std_types.c | 45 + drivers/infiniband/hw/mlx5/wr.c | 68 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 +- drivers/infiniband/hw/qedr/main.c | 3 +- drivers/infiniband/hw/qedr/qedr.h | 5 +- drivers/infiniband/hw/qedr/verbs.c | 45 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/usnic/usnic_fwd.c | 4 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/ah.c | 3 +- drivers/infiniband/sw/rdmavt/mr.c | 2 +- drivers/infiniband/sw/rdmavt/mr.h | 2 +- drivers/infiniband/sw/rxe/rxe.c | 41 +- drivers/infiniband/sw/rxe/rxe_loc.h | 8 +- drivers/infiniband/sw/rxe/rxe_mr.c | 50 +- drivers/infiniband/sw/rxe/rxe_net.c | 5 - drivers/infiniband/sw/rxe/rxe_param.h | 4 +- drivers/infiniband/sw/rxe/rxe_recv.c | 35 +- drivers/infiniband/sw/rxe/rxe_req.c | 5 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 48 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 1 - drivers/infiniband/sw/siw/siw_main.c | 1 - drivers/infiniband/sw/siw/siw_verbs.c | 11 +- drivers/infiniband/sw/siw/siw_verbs.h | 3 +- drivers/infiniband/ulp/ipoib/ipoib.h | 4 +- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 67 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 13 +- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 +- drivers/infiniband/ulp/iser/iscsi_iser.h | 25 +- drivers/infiniband/ulp/iser/iser_verbs.c | 112 +- drivers/infiniband/ulp/isert/ib_isert.c | 175 +- drivers/infiniband/ulp/isert/ib_isert.h | 21 +- drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h | 23 + drivers/infiniband/ulp/rtrs/rtrs-clt.c | 16 +- drivers/infiniband/ulp/rtrs/rtrs-srv.c | 2 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 20 +- drivers/infiniband/ulp/srpt/ib_srpt.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 11 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 1 + .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 + drivers/net/ethernet/mellanox/mlx5/core/main.c | 3 + include/linux/mlx5/device.h | 9 +- include/linux/mlx5/driver.h | 2 + include/linux/mlx5/mlx5_ifc.h | 129 +- include/rdma/ib.h | 31 +- include/rdma/ib_addr.h | 31 +- include/rdma/ib_cache.h | 29 +- include/rdma/ib_cm.h | 1 + include/rdma/ib_hdrs.h | 44 +- include/rdma/ib_mad.h | 31 +- include/rdma/ib_marshall.h | 31 +- include/rdma/ib_pack.h | 29 +- include/rdma/ib_pma.h | 31 +- include/rdma/ib_sa.h | 29 +- include/rdma/ib_smi.h | 31 +- include/rdma/ib_umem.h | 29 +- include/rdma/ib_umem_odp.h | 29 +- include/rdma/ib_verbs.h | 100 +- include/rdma/iw_cm.h | 30 +- include/rdma/iw_portmap.h | 30 +- include/rdma/opa_addr.h | 44 +- include/rdma/opa_port_info.h | 31 +- include/rdma/opa_smi.h | 31 +- include/rdma/opa_vnic.h | 49 +- include/rdma/rdma_cm.h | 31 +- include/rdma/rdma_cm_ib.h | 31 +- include/rdma/rdma_netlink.h | 2 +- include/rdma/rdma_vt.h | 50 +- include/rdma/rdmavt_cq.h | 53 +- include/rdma/rdmavt_mr.h | 50 +- include/rdma/rdmavt_qp.h | 50 +- include/rdma/uverbs_ioctl.h | 30 +- include/rdma/uverbs_named_ioctl.h | 29 +- include/rdma/uverbs_std_types.h | 43 +- include/rdma/uverbs_types.h | 29 +- include/uapi/rdma/efa-abi.h | 15 +- include/uapi/rdma/ib_user_ioctl_cmds.h | 15 + include/uapi/rdma/mlx5_user_ioctl_cmds.h | 16 +- include/uapi/rdma/qedr-abi.h | 10 +- include/uapi/rdma/rdma_netlink.h | 9 + include/uapi/rdma/rdma_user_ioctl.h | 2 +- 166 files changed, 6945 insertions(+), 7569 deletions(-) (diffstat from tag for-linus-merged)