[GIT PULL] Please pull RDMA subsystem changes

From: Jason Gunthorpe
Date: Wed Nov 03 2021 - 09:43:30 EST


Hi Linus,

These are the proposed RDMA patches for 5.16.

Not a very exciting cycle, we again meet the now-normal PR size that
is predominately fixes with a few driver features.

Thanks,
Jason

The following changes since commit 8bb7eca972ad531c9b149c0a51ab43a417385813:

Linux 5.15 (2021-10-31 13:53:10 -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 f1a090f09f42be5a5542009f0be310fdb3e768fc:

RDMA/core: Require the driver to set the IOVA correctly during rereg_mr (2021-11-03 09:37:52 -0300)

----------------------------------------------------------------
RDMA v5.16 merge window pull request

A typical collection of patches this cycle, mostly fixing with a few new
features:

- Fixes from static tools. clang warnings, dead code, unused variable,
coccinelle sweeps, etc

- Driver bug fixes and minor improvements in rxe, bnxt_re, hfi1, mlx5,
irdma, qedr

- rtrs ULP bug fixes an improvments

- Additional counters for bnxt_re

- Support verbs CQ notifications in EFA

- Continued reworking and fixing of rxe

- netlink control to enable/disable optional device counters

- rxe now can use AH objects for its UD path, fixing various bugs in the
process

- Add DMABUF support to EFA

----------------------------------------------------------------
Aharon Landau (12):
RDMA/mlx5: Avoid taking MRs from larger MR cache pools when a pool is empty
RDMA/counter: Add a descriptor in struct rdma_hw_stats
RDMA/counter: Add an is_disabled field in struct rdma_hw_stats
RDMA/counter: Add optional counter support
RDMA/nldev: Add support to get status of all counters
RDMA/nldev: Split nldev_stat_set_mode_doit out of nldev_stat_set_doit
RDMA/nldev: Allow optional-counter status configuration through RDMA netlink
RDMA/mlx5: Support optional counters in hw_stats initialization
RDMA/mlx5: Add steering support in optional flow counters
RDMA/mlx5: Add modify_op_stat() support
RDMA/mlx5: Add optional counter support in get_hw_stats callback
RDMA/core: Require the driver to set the IOVA correctly during rereg_mr

Alok Prasad (1):
RDMA/qedr: Fix NULL deref for query_qp on the GSI QP

Andy Shevchenko (1):
IB/hf1: Use string_upper() instead of an open coded variant

Arnd Bergmann (1):
RDMA/mlx5: fix build error with INFINIBAND_USER_ACCESS=n

Bob Pearson (11):
RDMA/rxe: Add memory barriers to kernel queues
RDMA/rxe: Cleanup MR status and type enums
RDMA/rxe: Separate HW and SW l/rkeys
RDMA/rxe: Create duplicate mapping tables for FMRs
RDMA/rxe: Only allow invalidate for appropriate MRs
RDMA/rxe: Move AV from rxe_send_wqe to rxe_send_wr
RDMA/rxe: Change AH objects to indexed
RDMA/rxe: Create AH index and return to user space
RDMA/rxe: Replace ah->pd by ah->ibah.pd
RDMA/rxe: Lookup kernel AH from ah index in UD WQEs
RDMA/rxe: Convert kernel UD post send to use ah_num

Cai Huoqing (1):
RDMA/hns: Use dma_alloc_coherent() instead of kmalloc/dma_map_single()

Chengchang Tang (1):
RDMA/hns: Use the core code to manage the fixed mmap entries

Christophe JAILLET (3):
RDMA: Remove redundant 'flush_workqueue()' calls
RDMA/rxe: Save a few bytes from struct rxe_pool
RDMA/rxe: Use 'bitmap_zalloc()' when applicable

Colin Ian King (1):
RDMA/iwpm: Remove redundant initialization of pointer err_str

Edwin Peer (1):
RDMA/bnxt_re: Use separate response buffer for stat_ctx_free

Gal Pressman (4):
RDMA/efa: CQ notifications
dma-buf: Fix pin callback comment
RDMA/umem: Allow pinned dmabuf umem usage
RDMA/efa: Add support for dmabuf memory regions

Gustavo A. R. Silva (1):
RDMA/hfi1: Use struct_size() and flex_array_size() helpers

Haoyue Xu (1):
RDMA/hns: Fix initial arm_st of CQ

Jack Wang (2):
RDMA/rtrs: Fix warning when use poll mode on client side.
RDMA/rtrs: Replace duplicate check with is_pollqueue helper

Jakub Kicinski (3):
RDMA/ipoib: Use dev_addr_mod()
RDMA/mlx5: Use dev_addr_mod()
RDMA: Constify netdev->dev_addr accesses

Jason Gunthorpe (8):
Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
IB/mlx5: Flow through a more detailed return code from get_prefetchable_mr()
Merge tag 'v5.15-rc4' into rdma.get for-next
RDMA/cma: Split apart the multiple uses of the same list heads
Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
Merge brank 'mlx5_mkey' into rdma.git for-next
Merge tag 'v5.15' into rdma.git for-next
Merge branch 'for-rc' into rdma.git for-next

Joe Perches (1):
RDMA/rxe: Make rxe_type_info static const

Junji Wei (1):
RDMA/rxe: Fix wrong port_cap_flags

Kamal Heib (5):
RDMA/qedr: Remove unsupported qedr_resize_cq callback
RDMA/bnxt_re: Fix kernel panic when trying to access bnxt_re_stat_descs
RDMA/bnxt_re: Use helper function to set GUIDs
RDMA/qed: Use helper function to set GUIDs
RDMA/bnxt_re: Remove unsupported bnxt_re_modify_ah callback

Leon Romanovsky (1):
RDMA/mlx4: Return missed an error if device doesn't support steering

Logan Gunthorpe (2):
RDMA/rw: switch to dma_map_sgtable()
RDMA/core: Set sgtable nents when using ib_dma_virt_map_sg()

Mark Zhang (2):
RDMA/core: Add a helper API rdma_free_hw_stats_struct
RDMA/core: Fix missed initialization of rdma_hw_stats::lock

Md Haris Iqbal (5):
RDMA/rtrs: Use sysfs_emit instead of s*printf function for sysfs show
RDMA/rtrs: Remove len parameter from helper print functions of sysfs
RDMA/rtrs: Introduce destroy_cq helper
RDMA/rtrs: Do not allow sessname to contain special symbols / and .
RDMA/rtrs-clt: Follow "one entry one value" rule for IO migration stats

Mike Marciniszyn (6):
IB/hfi1: Remove cache and embed txreq in ring
IB/hfi1: Get rid of hot path divide
IB/hfi1: Get rid of tx priv backpointer
IB/hfi1: Tune netdev xmit cachelines
IB/hfi1: Remove atomic completion count
IB/hfi1: Add ring consumer and producers traces

Rao Shoaib (1):
RDMA/rxe: Bump up default maximum values used via uverbs

Scott Breyer (3):
IB/hfi1: Rebranding of hfi1 driver to Cornelis Networks
IB/qib: Rebranding of qib driver to Cornelis Networks
IB/opa_vnic: Rebranding of OPA VNIC driver to Cornelis Networks

Selvin Xavier (10):
RDMA/bnxt_re: Add extended statistics counters
RDMA/bnxt_re: Update statistics counter name
RDMA/bnxt_re: Reduce the delay in polling for hwrm command completion
RDMA/bnxt_re: Support multiple page sizes
RDMA/bnxt_re: Suppress unwanted error messages
RDMA/bnxt_re: Fix query SRQ failure
RDMA/bnxt_re: Fix FRMR issue with single page MR allocation
RDMA/bnxt_re: Use GFP_KERNEL in non atomic context
RDMA/bnxt_re: Correct FRMR size calculation
RDMA/bnxt_re: Check if the vlan is valid before reporting

Xiao Yang (7):
RDMA/rxe: Add new RXE_READ_OR_WRITE_MASK
RDMA/rxe: Add MASK suffix for RXE_READ_OR_ATOMIC and RXE_WRITE_OR_SEND
RDMA/rxe: Remove unused WR_READ_WRITE_OR_SEND_MASK
RDMA/rxe: Remove the is_user members of struct rxe_sq/rxe_rq/rxe_srq
RDMA/rxe: Change the is_user member of struct rxe_cq to bool
RDMA/rxe: Set partial attributes when completion status != IBV_WC_SUCCESS
RDMA/rxe: Remove duplicate settings

Yixing Liu (1):
RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility

Zhu Yanjun (11):
RDMA/rxe: remove the redundant variable
RDMA/rxe: remove the unnecessary variable
RDMA/irdma: Delete unused struct irdma_bth
RDMA/irdma: Remove irdma_uk_mw_bind()
RDMA/irdma: Remove irdma_sc_send_lsmm_nostag()
RDMA/irdma: Remove irdma_get_hw_addr()
RDMA/irdma: Remove irdma_cqp_up_map_cmd()
RDMA/irdma: Make irdma_uk_cq_init() return a void
RDMA/irdma: Remove the unused spin lock in struct irdma_qp_uk
RDMA/irdma: Remove the unused variable local_qp
RDMA/irdma: optimize rx path by removing unnecessary copy

wangyugui (1):
RDMA/core: Use kvzalloc when allocating the struct ib_port

drivers/infiniband/core/cma.c | 34 +-
drivers/infiniband/core/cma_priv.h | 11 +-
drivers/infiniband/core/counters.c | 40 ++-
drivers/infiniband/core/device.c | 1 +
drivers/infiniband/core/iwpm_util.c | 2 +-
drivers/infiniband/core/nldev.c | 278 ++++++++++++---
drivers/infiniband/core/rw.c | 66 ++--
drivers/infiniband/core/sa_query.c | 1 -
drivers/infiniband/core/sysfs.c | 58 ++--
drivers/infiniband/core/umem_dmabuf.c | 51 +++
drivers/infiniband/core/uverbs_cmd.c | 3 -
drivers/infiniband/core/verbs.c | 49 +++
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 19 +-
drivers/infiniband/hw/bnxt_re/hw_counters.c | 380 +++++++++++++--------
drivers/infiniband/hw/bnxt_re/hw_counters.h | 30 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 45 ++-
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 1 -
drivers/infiniband/hw/bnxt_re/main.c | 16 +-
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 15 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 2 +-
drivers/infiniband/hw/bnxt_re/qplib_res.c | 22 +-
drivers/infiniband/hw/bnxt_re/qplib_res.h | 10 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.c | 57 +++-
drivers/infiniband/hw/bnxt_re/qplib_sp.h | 33 +-
drivers/infiniband/hw/bnxt_re/roce_hsi.h | 85 +++++
drivers/infiniband/hw/cxgb4/cm.c | 1 -
drivers/infiniband/hw/cxgb4/device.c | 1 -
drivers/infiniband/hw/cxgb4/provider.c | 22 +-
drivers/infiniband/hw/efa/efa.h | 23 +-
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 100 +++++-
drivers/infiniband/hw/efa/efa_admin_defs.h | 41 +++
drivers/infiniband/hw/efa/efa_com.c | 164 +++++++++
drivers/infiniband/hw/efa/efa_com.h | 38 ++-
drivers/infiniband/hw/efa/efa_com_cmd.c | 35 +-
drivers/infiniband/hw/efa/efa_com_cmd.h | 10 +-
drivers/infiniband/hw/efa/efa_main.c | 182 ++++++++--
drivers/infiniband/hw/efa/efa_regs_defs.h | 7 +-
drivers/infiniband/hw/efa/efa_verbs.c | 213 +++++++++---
drivers/infiniband/hw/hfi1/Kconfig | 4 +-
drivers/infiniband/hw/hfi1/chip.c | 3 +-
drivers/infiniband/hw/hfi1/driver.c | 3 +-
drivers/infiniband/hw/hfi1/efivar.c | 10 +-
drivers/infiniband/hw/hfi1/init.c | 3 +-
drivers/infiniband/hw/hfi1/ipoib.h | 82 +++--
drivers/infiniband/hw/hfi1/ipoib_main.c | 2 +-
drivers/infiniband/hw/hfi1/ipoib_tx.c | 316 ++++++++---------
drivers/infiniband/hw/hfi1/trace_tx.h | 71 +++-
drivers/infiniband/hw/hfi1/user_exp_rcv.c | 5 +-
drivers/infiniband/hw/hfi1/verbs.c | 53 +--
drivers/infiniband/hw/hns/hns_roce_device.h | 26 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 10 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 32 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 142 ++++++--
drivers/infiniband/hw/irdma/cm.h | 12 +-
drivers/infiniband/hw/irdma/ctrl.c | 43 +--
drivers/infiniband/hw/irdma/hw.c | 7 +-
drivers/infiniband/hw/irdma/main.h | 5 +-
drivers/infiniband/hw/irdma/osdep.h | 1 -
drivers/infiniband/hw/irdma/protos.h | 2 -
drivers/infiniband/hw/irdma/trace_cm.h | 8 +-
drivers/infiniband/hw/irdma/type.h | 3 +-
drivers/infiniband/hw/irdma/uk.c | 101 ++----
drivers/infiniband/hw/irdma/user.h | 32 +-
drivers/infiniband/hw/irdma/utils.c | 49 +--
drivers/infiniband/hw/irdma/verbs.c | 146 ++++----
drivers/infiniband/hw/mlx4/alias_GUID.c | 4 +-
drivers/infiniband/hw/mlx4/main.c | 44 ++-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 4 +-
drivers/infiniband/hw/mlx5/counters.c | 283 ++++++++++++---
drivers/infiniband/hw/mlx5/fs.c | 187 ++++++++++
drivers/infiniband/hw/mlx5/mlx5_ib.h | 28 +-
drivers/infiniband/hw/mlx5/mr.c | 26 +-
drivers/infiniband/hw/mlx5/odp.c | 40 ++-
drivers/infiniband/hw/qedr/main.c | 1 -
drivers/infiniband/hw/qedr/verbs.c | 25 +-
drivers/infiniband/hw/qedr/verbs.h | 1 -
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/usnic/usnic_fwd.c | 2 +-
drivers/infiniband/hw/usnic/usnic_fwd.h | 2 +-
drivers/infiniband/sw/rxe/rxe_av.c | 20 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 55 ++-
drivers/infiniband/sw/rxe/rxe_cq.c | 28 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 42 +--
drivers/infiniband/sw/rxe/rxe_loc.h | 2 +
drivers/infiniband/sw/rxe/rxe_mr.c | 275 +++++++++++----
drivers/infiniband/sw/rxe/rxe_mw.c | 36 +-
drivers/infiniband/sw/rxe/rxe_opcode.h | 6 +-
drivers/infiniband/sw/rxe/rxe_param.h | 34 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 41 ++-
drivers/infiniband/sw/rxe/rxe_pool.h | 15 -
drivers/infiniband/sw/rxe/rxe_qp.c | 16 +-
drivers/infiniband/sw/rxe/rxe_queue.c | 30 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 374 +++++++++-----------
drivers/infiniband/sw/rxe/rxe_req.c | 65 ++--
drivers/infiniband/sw/rxe/rxe_resp.c | 50 +--
drivers/infiniband/sw/rxe/rxe_srq.c | 3 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 139 +++-----
drivers/infiniband/sw/rxe/rxe_verbs.h | 62 ++--
drivers/infiniband/sw/siw/siw_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 18 +-
drivers/infiniband/ulp/opa_vnic/Kconfig | 4 +-
drivers/infiniband/ulp/opa_vnic/Makefile | 3 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 7 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 55 +--
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 11 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-clt.h | 13 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 3 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 3 +-
drivers/infiniband/ulp/rtrs/rtrs.c | 31 +-
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 8 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 17 +-
include/linux/dma-buf.h | 4 +-
include/rdma/ib_hdrs.h | 1 +
include/rdma/ib_umem.h | 11 +
include/rdma/ib_verbs.h | 74 ++--
include/rdma/rdma_counter.h | 2 +
include/uapi/rdma/efa-abi.h | 18 +-
include/uapi/rdma/rdma_netlink.h | 5 +
include/uapi/rdma/rdma_user_rxe.h | 10 +-
127 files changed, 3655 insertions(+), 1946 deletions(-)
(diffstat from tag for-linus-merged)

Attachment: signature.asc
Description: PGP signature