Hi Linus, Not a big cylce this time, lots of scattered changes. Thanks, Jason The following changes since commit 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5: Linux 6.5-rc1 (2023-07-09 13:53:13 -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 f5acc36b0714b7b8510a8b436087d33a65cb05f4: IB/hfi1: Reduce printing of errors during driver shut down (2023-08-22 17:31:45 +0300) ---------------------------------------------------------------- v6.6 merge window RDMA pull request Many small changes across the subystem, some highlights: - Usual driver cleanups in qedr, siw, erdma, hfi1, mlx4/5, irdma, mthca, hns, and bnxt_re - siw now works over tunnel and other netdevs with a MAC address by removing assumptions about a MAC/GID from the connection manager - "Doorbell Pacing" for bnxt_re - this is a best effort scheme to allow userspace to slow down the doorbell rings if the HW gets full - irdma egress VLAN priority, better QP/WQ sizing - rxe bug fixes in queue draining and srq resizing - Support more ethernet speed options in the core layer - DMABUF support for bnxt_re - Multi-stage MTT support for erdma to allow much bigger MR registrations - A irdma fix with a CVE that came in too late to go to -rc, missing bounds checking for 0 length MRs ---------------------------------------------------------------- Arnd Bergmann (1): RDMA/irdma: Fix building without IPv6 Bernard Metzler (1): RDMA/siw: Fix tx thread initialization. Bob Pearson (4): RDMA/rxe: Move work queue code to subroutines RDMA/rxe: Fix unsafe drain work queue code RDMA/rxe: Fix rxe_modify_srq RDMA/rxe: Fix incomplete state save in rxe_requester Brendan Cunningham (1): RDMA/hfi1: Move user SDMA system memory pinning code to its own file Chandramohan Akula (11): bnxt_en: Update HW interface headers bnxt_en: Share the bar0 address with the RoCE driver RDMA/bnxt_re: Initialize Doorbell pacing feature RDMA/bnxt_re: Enable pacing support for the user apps RDMA/bnxt_re: Update alloc_page uapi for pacing RDMA/bnxt_re: Implement doorbell pacing algorithm RDMA/bnxt_re: Add a new uapi for driver notification bnxt_re: Reorganize the resource stats bnxt_re: Update the hw counters for resource stats bnxt_re: Expose the missing hw counters bnxt_re: Update the debug counters for doorbell pacing Cheng Xu (3): RDMA/erdma: Renaming variable names and field names of struct erdma_mem RDMA/erdma: Refactor the storage structure of MTT entries RDMA/erdma: Implement hierarchical MTT Chengchang Tang (4): RDMA/hns: Fix port active speed RDMA/hns: Fix CQ and QP cache affinity RDMA/hns: Dump whole QP/CQ/MR resource in raw RDMA/hns: Support hns HW stats Christophe JAILLET (1): IB/hfi1: Use struct_size() Christopher Bednarz (1): RDMA/irdma: Prevent zero-length STAG registration Chuck Lever (4): RDMA/siw: Fabricate a GID on tun and loopback devices RDMA/core: Set gid_attr.ndev for iWARP devices RDMA/cma: Deduplicate error flow in cma_validate_port() RDMA/cma: Avoid GID lookups on iWARP devices Douglas Miller (1): IB/hfi1: Reduce printing of errors during driver shut down Guoqing Jiang (4): RDMA/cxgb4: Set sq_sig_type correctly RDMA/siw: Balance the reference of cep->kref in the error path RDMA/siw: Correct wrong debug message RDMA/siw: Call llist_reverse_order in siw_run_sq Gustavo A. R. Silva (2): RDMA/irdma: Replace one-element array with flexible-array member RDMA/mlx4: Copy union directly Haoyue Xu (1): RDMA/core: Get IB width and speed from netdev Ivan Orlov (1): RDMA: Make all 'class' structures const Jinjie Ruan (1): RDMA/hfi1: Use list_for_each_entry() helper Julia Lawall (3): RDMA/erdma: use vmalloc_array and vcalloc RDMA/siw: use vmalloc_array and vcalloc RDMA/bnxt_re: use vmalloc_array and vcalloc Junxian Huang (3): RDMA/hns: Remove VF extend configuration RDMA/hns: Fix incorrect post-send with direct wqe of wr-list RDMA/hns: Fix inaccurate error label name in init instance Kalesh AP (6): RDMA/bnxt_re: Fix max_qp count for virtual functions RDMA/bnxt_re: Remove a redundant flag RDMA/bnxt_re: Cleanup bnxt_re_process_raw_qp_pkt_rx() function RDMA/bnxt_re: Avoid unnecessary memset RDMA/bnxt_re: Remove unnecessary variable initializations IB/core: Add more speed parsing in ib_get_width_and_speed() Kashyap Desai (1): RDMA/bnxt_re: Initialize mutex dbq_lock Krzysztof Czurylo (1): RDMA/irdma: Add table based lookup for CQ pointer during an event Leon Romanovsky (3): RDMA/irdma: Add missing kernel-doc in irdma_setup_umode_qp() RDMA/bnxt_re: Fix kernel doc errors Revert "IB/isert: Fix incorrect release of isert connection" Luoyouming (1): RDMA/hns: Support get XRCD number from firmware Michael Margolin (1): RDMA/efa: Add RDMA write HW statistics counters Minjie Du (3): RDMA/qedr: Remove a duplicate assignment in irdma_query_ah() RDMA/qedr: Remove a duplicate assignment in qedr_create_gsi_qp() RDMA/qedr: Remove duplicate assignments of va Mustafa Ismail (2): RDMA/irdma: Implement egress VLAN priority RDMA/irdma: Cleanup and rename irdma_netdev_vlan_ipv6() Rohit Chavan (2): RDMA/rxe: Fix redundant break statement in switch-case. RDMA/mlx5: Fix trailing */ formatting in block comment Ruan Jinjie (4): RDMA/mlx: Remove unnecessary variable initializations RDMA/mthca: Remove unnecessary NULL assignments RDMA: Remove unnecessary ternary operators RDMA: Remove unnecessary NULL values Saravanan Vajravel (1): RDMA/bnxt_re: Add support for dmabuf pinned memory regions Selvin Xavier (2): RDMA/bnxt_re: Fix the sideband buffer size handling for FW commands RDMA/bnxt_re: Protect the PD table bitmap Shetu Ayalew (1): IB/mlx5: Add HW counter called rx_dct_connect Shiraz Saleem (1): RDMA/irdma: Drop unused kernel push code Sindhu Devale (4): RDMA/irdma: Drop a local in irdma_sc_get_next_aeqe RDMA/irdma: Refactor error handling in create CQP RDMA/irdma: Allow accurate reporting on QP max send/recv WR RDMA/irdma: Use HW specific minimum WQ size Xiang Yang (1): IB/uverbs: Fix an potential error pointer dereference Yang Li (1): RDMA/irdma: Fix one kernel-doc comment Yonatan Nachum (1): RDMA/efa: Fix wrong resources deallocation order Yuanyuan Zhong (1): RDMA/mlx5: align MR mem allocation size to power-of-two Yue Haibing (3): RDMA/hns: Remove unused function declarations RDMA/hns: Remove unused declaration hns_roce_modify_srq() RDMA Remove unused function declarations drivers/infiniband/core/cache.c | 11 + drivers/infiniband/core/cma.c | 32 +- drivers/infiniband/core/iwpm_util.c | 2 +- drivers/infiniband/core/netlink.c | 2 +- drivers/infiniband/core/uverbs_main.c | 35 +- .../infiniband/core/uverbs_std_types_counters.c | 2 + drivers/infiniband/core/verbs.c | 109 ++++- drivers/infiniband/hw/bnxt_re/bnxt_re.h | 35 +- drivers/infiniband/hw/bnxt_re/hw_counters.c | 84 +++- drivers/infiniband/hw/bnxt_re/hw_counters.h | 55 +++ drivers/infiniband/hw/bnxt_re/ib_verbs.c | 255 +++++++---- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 6 + drivers/infiniband/hw/bnxt_re/main.c | 277 ++++++++++-- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 47 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 66 +-- drivers/infiniband/hw/bnxt_re/qplib_res.c | 38 +- drivers/infiniband/hw/bnxt_re/qplib_res.h | 23 +- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 85 ++-- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 2 +- drivers/infiniband/hw/cxgb4/qp.c | 2 +- drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 13 + drivers/infiniband/hw/efa/efa_com_cmd.c | 8 +- drivers/infiniband/hw/efa/efa_com_cmd.h | 10 +- drivers/infiniband/hw/efa/efa_verbs.c | 24 +- drivers/infiniband/hw/erdma/erdma_hw.h | 18 +- drivers/infiniband/hw/erdma/erdma_qp.c | 2 +- drivers/infiniband/hw/erdma/erdma_verbs.c | 434 ++++++++++++++----- drivers/infiniband/hw/erdma/erdma_verbs.h | 36 +- drivers/infiniband/hw/hfi1/Makefile | 1 + drivers/infiniband/hw/hfi1/affinity.c | 4 +- drivers/infiniband/hw/hfi1/chip.c | 8 +- drivers/infiniband/hw/hfi1/device.c | 72 ++-- drivers/infiniband/hw/hfi1/hfi.h | 4 +- drivers/infiniband/hw/hfi1/pin_system.c | 474 +++++++++++++++++++++ drivers/infiniband/hw/hfi1/pinning.h | 20 + drivers/infiniband/hw/hfi1/pio.c | 9 +- drivers/infiniband/hw/hfi1/user_sdma.c | 441 +------------------ drivers/infiniband/hw/hfi1/user_sdma.h | 17 +- drivers/infiniband/hw/hns/hns_roce_device.h | 35 +- drivers/infiniband/hw/hns/hns_roce_hem.c | 2 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 151 +++---- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 14 +- drivers/infiniband/hw/hns/hns_roce_main.c | 86 +++- drivers/infiniband/hw/hns/hns_roce_qp.c | 28 +- drivers/infiniband/hw/hns/hns_roce_restrack.c | 75 +--- drivers/infiniband/hw/irdma/cm.c | 90 +++- drivers/infiniband/hw/irdma/ctrl.c | 23 +- drivers/infiniband/hw/irdma/hw.c | 63 ++- drivers/infiniband/hw/irdma/i40iw_hw.c | 1 + drivers/infiniband/hw/irdma/i40iw_hw.h | 2 +- drivers/infiniband/hw/irdma/icrdma_hw.c | 1 + drivers/infiniband/hw/irdma/icrdma_hw.h | 1 + drivers/infiniband/hw/irdma/irdma.h | 1 + drivers/infiniband/hw/irdma/main.h | 8 +- drivers/infiniband/hw/irdma/type.h | 3 +- drivers/infiniband/hw/irdma/uk.c | 218 +++++----- drivers/infiniband/hw/irdma/user.h | 19 +- drivers/infiniband/hw/irdma/utils.c | 25 ++ drivers/infiniband/hw/irdma/verbs.c | 259 +++++++---- drivers/infiniband/hw/irdma/verbs.h | 5 +- drivers/infiniband/hw/mlx4/main.c | 47 +- drivers/infiniband/hw/mlx5/counters.c | 2 + drivers/infiniband/hw/mlx5/mad.c | 40 +- drivers/infiniband/hw/mlx5/mr.c | 8 +- drivers/infiniband/hw/mthca/mthca_provider.c | 20 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 1 - drivers/infiniband/hw/qedr/verbs.c | 2 +- drivers/infiniband/hw/qib/qib_file_ops.c | 17 +- drivers/infiniband/sw/rxe/rxe_comp.c | 4 + drivers/infiniband/sw/rxe/rxe_loc.h | 6 - drivers/infiniband/sw/rxe/rxe_qp.c | 159 ++++--- drivers/infiniband/sw/rxe/rxe_req.c | 45 +- drivers/infiniband/sw/rxe/rxe_resp.c | 4 + drivers/infiniband/sw/rxe/rxe_srq.c | 60 +-- drivers/infiniband/sw/rxe/rxe_verbs.c | 1 - drivers/infiniband/sw/siw/siw.h | 4 +- drivers/infiniband/sw/siw/siw_cm.c | 1 - drivers/infiniband/sw/siw/siw_main.c | 62 +-- drivers/infiniband/sw/siw/siw_qp.c | 4 +- drivers/infiniband/sw/siw/siw_qp_tx.c | 52 ++- drivers/infiniband/sw/siw/siw_verbs.c | 12 +- drivers/infiniband/ulp/isert/ib_isert.c | 2 + drivers/infiniband/ulp/rtrs/rtrs-clt.c | 19 +- drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-srv.c | 15 +- drivers/infiniband/ulp/rtrs/rtrs-srv.h | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 54 +++ drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 1 + include/rdma/ib_verbs.h | 2 - include/rdma/iw_cm.h | 21 - include/uapi/rdma/bnxt_re-abi.h | 7 + include/uapi/rdma/irdma-abi.h | 9 + 94 files changed, 2892 insertions(+), 1670 deletions(-) create mode 100644 drivers/infiniband/hw/hfi1/pin_system.c create mode 100644 drivers/infiniband/hw/hfi1/pinning.h