[GIT PULL] Please pull RDMA subsystem changes

From: Jason Gunthorpe
Date: Fri May 17 2024 - 15:34:46 EST


Hi Linus,

Aside from the usual things this has an arch update for
__iowrite64_copy() used by the RDMA drivers. This API was intended to
generate large 64 byte MemWr TLPs on PCI. These days most processors
had done this by just repeating writel() in a loop. S390 and some new
ARM64 designs require a special helper to get this to generate.

Thanks,
Jason

The following changes since commit a68292eb431619a5f8db9d4868346837c5606424:

net: mana: Avoid open coded arithmetic (2024-04-11 13:46:47 +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 9c0731832d3b7420cbadba6a7f334363bc8dfb15:

RDMA/cma: Fix kmemleak in rdma_core observed during blktests nvme/rdma use siw (2024-05-12 13:04:11 +0300)

----------------------------------------------------------------
RDMA v6.10 merge window

Normal set of driver updates and small fixes:

- Small improvements and fixes for erdma, efa, hfi1, bnxt_re

- Fix a UAF crash after module unload on leaking restrack entry

- Continue adding full RDMA support in mana with support for EQs, GID's
and CQs

- Improvements to the mkey cache in mlx5

- DSCP traffic class support in hns and several bug fixes

- Cap the maximum number of MADs in the receive queue to avoid OOM

- Another batch of rxe bug fixes from large scale testing

- __iowrite64_copy() optimizations for write combining MMIO memory

- Remove NULL checks before dev_put/hold()

- EFA support for receive with immediate

- Fix a recent memleaking regression in a cma error path

----------------------------------------------------------------
Bob Pearson (12):
RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt
RDMA/rxe: Allow good work requests to be executed
RDMA/rxe: Remove redundant scheduling of rxe_completer
RDMA/rxe: Merge request and complete tasks
RDMA/rxe: Remove save/rollback_state in rxe_requester
RDMA/rxe: Don't schedule rxe_completer from rxe_requester
RDMA/rxe: Don't call rxe_requester from rxe_completer
RDMA/rxe: Don't call direct between tasks
RDMA/rxe: Fix incorrect rxe_put in error path
RDMA/rxe: Make rxe_loopback match rxe_send behavior
RDMA/rxe: Get rid of pkt resend on err
RDMA/rxe: Let destroy qp succeed with stuck packet

Boshi Yu (3):
RDMA/erdma: Allocate doorbell records from dma pool
RDMA/erdma: Unify the names related to doorbell records
RDMA/erdma: Remove unnecessary __GFP_ZERO flag

Breno Leitao (2):
IB/hfi1: Do not use custom stat allocator
IB/hfi1: Remove generic .ndo_get_stats64

Chengchang Tang (7):
RDMA/hns: Remove unused parameters and variables
RDMA/hns: Add max_ah and cq moderation capacities in query_device()
RDMA/hns: Fix deadlock on SRQ async events.
RDMA/hns: Fix UAF for cq async event
RDMA/hns: Fix GMV table pagesize
RDMA/hns: Use complete parentheses in macros
RDMA/hns: Modify the print level of CQE error

Chiara Meiohas (2):
RDMA/core: Add an option to display driver-specific QPs in the rdmatool
RDMA/mlx5: Track DCT, DCI and REG_UMR QPs as diver_detail resources.

Ilpo Järvinen (1):
RDMA/hfi1: Use RMW accessors for changing LNKCTL2

Jason Gunthorpe (6):
x86: Stop using weak symbols for __iowrite32_copy()
s390: Implement __iowrite32_copy()
s390: Stop using weak symbols for __iowrite64_copy()
arm64/io: Provide a WC friendly __iowriteXX_copy()
net: hns3: Remove io_stop_wc() calls after __iowrite64_copy()
IB/mlx5: Use __iowrite64_copy() for write combining stores

Jules Irenge (3):
RDMA/mlx5: Remove NULL check before dev_{put, hold}
RDMA/ipoib: Remove NULL check before dev_{put, hold}
RDMA/core: Remove NULL check before dev_{put, hold}

Junxian Huang (1):
RDMA/hns: Support DSCP

Konstantin Taranov (18):
RDMA/mana_ib: Introduce helpers to create and destroy mana queues
RDMA/mana_ib: Use struct mana_ib_queue for CQs
RDMA/mana_ib: Use struct mana_ib_queue for WQs
RDMA/mana_ib: Use struct mana_ib_queue for RAW QPs
RDMA/mana_ib: remove useless return values from dbg prints
RDMA/mana_ib: Use num_comp_vectors of ib_device
RDMA/mana_ib: Add EQ creation for rnic adapter
RDMA/mana_ib: Create and destroy rnic adapter
RDMA/mana_ib: Implement port parameters
RDMA/mana_ib: Enable RoCE on port 1
RDMA/mana_ib: Adding and deleting GIDs
RDMA/mana_ib: Configure mac address in RNIC
RDMA/mana_ib: Fix missing ret value
RDMA/mana_ib: create EQs for RNIC CQs
RDMA/mana_ib: create and destroy RNIC cqs
RDMA/mana_ib: introduce a helper to remove cq callbacks
RDMA/mana_ib: boundary check before installing cq callbacks
RDMA/mana_ib: implement uapi for creation of rnic cq

Leon Romanovsky (2):
RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
RDMA/IPoIB: Fix format truncation compilation errors

Michael Guralnik (1):
IB/core: Implement a limit on UMAD receive List

Michael Margolin (2):
RDMA/efa: Add shutdown notifier
RDMA/efa: Support QP with unsolicited write w/ imm. receive

Michal Schmidt (1):
bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq

Or Har-Toov (3):
RDMA/mlx5: Uncacheable mkey has neither rb_key or cache_ent
RDMA/mlx5: Change check for cacheable mkeys
RDMA/mlx5: Adding remote atomic access flag to updatable flags

Wenchao Hao (1):
RDMA/restrack: Fix potential invalid address access

Yangyang Li (1):
RDMA/hns: Use macro instead of magic number

Zhengchao Shao (1):
RDMA/hns: Fix return value in hns_roce_map_mr_sg

Zhu Yanjun (2):
RDMA/rxe: Return the correct errno
RDMA/cma: Fix kmemleak in rdma_core observed during blktests nvme/rdma use siw

wenglianfa (2):
RDMA/hns: Fix mismatch exception rollback
RDMA/hns: Add mutex_destroy()

arch/arm64/include/asm/io.h | 132 ++++++++++
arch/arm64/kernel/io.c | 42 +++
arch/s390/include/asm/io.h | 15 ++
arch/s390/pci/pci.c | 6 -
arch/x86/include/asm/io.h | 17 ++
arch/x86/lib/Makefile | 1 -
arch/x86/lib/iomap_copy_64.S | 15 --
drivers/infiniband/core/cma.c | 4 +-
drivers/infiniband/core/device.c | 10 +-
drivers/infiniband/core/lag.c | 3 +-
drivers/infiniband/core/nldev.c | 23 +-
drivers/infiniband/core/restrack.c | 63 +----
drivers/infiniband/core/roce_gid_mgmt.c | 3 +-
drivers/infiniband/core/user_mad.c | 21 +-
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 +-
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 11 +-
drivers/infiniband/hw/efa/efa_com_cmd.c | 3 +
drivers/infiniband/hw/efa/efa_com_cmd.h | 1 +
drivers/infiniband/hw/efa/efa_main.c | 11 +
drivers/infiniband/hw/efa/efa_verbs.c | 19 +-
drivers/infiniband/hw/erdma/erdma.h | 13 +-
drivers/infiniband/hw/erdma/erdma_cmdq.c | 99 +++----
drivers/infiniband/hw/erdma/erdma_cq.c | 2 +-
drivers/infiniband/hw/erdma/erdma_eq.c | 54 ++--
drivers/infiniband/hw/erdma/erdma_hw.h | 6 +-
drivers/infiniband/hw/erdma/erdma_main.c | 15 +-
drivers/infiniband/hw/erdma/erdma_qp.c | 4 +-
drivers/infiniband/hw/erdma/erdma_verbs.c | 105 ++++----
drivers/infiniband/hw/erdma/erdma_verbs.h | 16 +-
drivers/infiniband/hw/hfi1/ipoib_main.c | 20 +-
drivers/infiniband/hw/hfi1/pcie.c | 30 +--
drivers/infiniband/hw/hns/hns_roce_ah.c | 33 ++-
drivers/infiniband/hw/hns/hns_roce_alloc.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_cq.c | 25 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 14 +-
drivers/infiniband/hw/hns/hns_roce_hem.c | 17 +-
drivers/infiniband/hw/hns/hns_roce_hem.h | 12 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 154 +++++++----
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 15 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 32 ++-
drivers/infiniband/hw/hns/hns_roce_mr.c | 19 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 29 ++-
drivers/infiniband/hw/hns/hns_roce_srq.c | 12 +-
drivers/infiniband/hw/mana/cq.c | 111 ++++----
drivers/infiniband/hw/mana/device.c | 51 +++-
drivers/infiniband/hw/mana/main.c | 328 +++++++++++++++++++++++-
drivers/infiniband/hw/mana/mana_ib.h | 147 ++++++++++-
drivers/infiniband/hw/mana/mr.c | 2 +-
drivers/infiniband/hw/mana/qp.c | 114 +++-----
drivers/infiniband/hw/mana/wq.c | 31 +--
drivers/infiniband/hw/mlx5/main.c | 3 +-
drivers/infiniband/hw/mlx5/mem.c | 8 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 3 +-
drivers/infiniband/hw/mlx5/mr.c | 35 ++-
drivers/infiniband/hw/mlx5/qp.c | 3 +-
drivers/infiniband/hw/mlx5/restrack.c | 29 +++
drivers/infiniband/sw/rxe/rxe_comp.c | 32 +--
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 2 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.h | 2 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 3 +-
drivers/infiniband/sw/rxe/rxe_net.c | 69 ++---
drivers/infiniband/sw/rxe/rxe_pool.c | 4 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 46 ++--
drivers/infiniband/sw/rxe/rxe_req.c | 82 ++----
drivers/infiniband/sw/rxe/rxe_resp.c | 14 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 17 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 7 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +-
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 8 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 -
include/linux/io.h | 8 +-
include/rdma/restrack.h | 7 +-
include/uapi/rdma/efa-abi.h | 7 +
include/uapi/rdma/hns-abi.h | 9 +-
include/uapi/rdma/mana-abi.h | 12 +
include/uapi/rdma/rdma_netlink.h | 6 +
lib/iomap_copy.c | 13 +-
77 files changed, 1584 insertions(+), 768 deletions(-)
delete mode 100644 arch/x86/lib/iomap_copy_64.S

Attachment: signature.asc
Description: PGP signature