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