[GIT PULL] Please pull RDMA subsystem changes

From: Jason Gunthorpe
Date: Thu Aug 31 2023 - 20:30:45 EST


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

Attachment: signature.asc
Description: PGP signature