Please pull RDMA subsystem changes
Jason Gunthorpe
maintainerHi Linus,
Much larger pull request this time. We got a new Pensando ionic driver, a new Gen 3 HW support for Intel irdma, and lots of small bnxt_re improvements. Plus the usual little driver fixes all over.
There are two or three more new drivers on the list so I expect a few more larger merge windows going forward.
The merge conflict is resolved as Stephen did:
https://lore.kernel.org/r/[email protected]
Keep bnxt_re_free_gid_ctx() and move it ahead of bnxt_re_get_stats_ctx(), bnxt added their new functions to the same spot in the rc and next branches.
The tag for-linus-merged with my merge resolution to v6.17 is also available to pull.
Thanks,
Jason
The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585:
Linux 6.17-rc1 (2025-08-10 19:41:16 +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 e6d736bd08902ba53460df1b62ee4218bbd17d9b:
RDMA/ionic: Fix memory leak of admin q_wr (2025-09-26 13:12:56 -0300)
----------------------------------------------------------------
RDMA v6.18 merge window pull request
A new Pensando ionic driver, a new Gen 3 HW support for Intel irdma, and lots of small bnxt_re improvements.
- Small bug fixes and improves to hfi1, efa, mlx5, erdma, rdmarvt, siw
- Allow userspace access to IB service records through the rdmacm
- Optimize dma mapping for erdma
- Fix shutdown of the GSI QP in mana
- Support relaxed ordering MR and fix a corruption bug with mlx5 DMA Data Direct
- Many improvement to bnxt_re:
* Debugging features and counters
* Improve performance of some commands
* Change flow_label reporting in completions
* Mirror vnic
* RDMA flow support
- New RDMA driver for Pensando Ethernet devices: ionic
- Gen 3 hardware support for the Intel irdma driver
- Fix rdma routing resolution with VRFs
----------------------------------------------------------------
Abhijit Gangurde (17):
net: ionic: Create an auxiliary device for rdma driver
net: ionic: Update LIF identity with additional RDMA capabilities
net: ionic: Export the APIs from net driver to support device commands
net: ionic: Provide RDMA reset support for the RDMA driver
net: ionic: Provide interrupt allocation support for the RDMA driver
net: ionic: Provide doorbell and CMB region information
RDMA: Add IONIC to rdma_driver_id definition
RDMA/ionic: Register auxiliary module for ionic ethernet adapter RDMA/ionic: Create device queues to support admin operations RDMA/ionic: Register device ops for control path RDMA/ionic: Register device ops for datapath
RDMA/ionic: Register device ops for miscellaneous functionality RDMA/ionic: Implement device stats ops
RDMA/ionic: Add Makefile/Kconfig to kernel build environment RDMA/ionic: Fix build failure on SPARC due to xchg() operand size RDMA/ionic: Use ether_addr_copy instead of memcpy RDMA/ionic: Fix memory leak of admin q_wr
Abhishek Mohapatra (1):
RDMA/bnxt_re: Report udp source port for flow_label in bnxt_re_query_qp
Alok Tiwari (2):
RDMA/bnxt_re: Fix incorrect errno used in function comments RDMA/bnxt_re: improve clarity in ALLOC_PAGE handler
Anantha Prabhu (3):
RDMA/bnxt_re: Update sysfs entries with appropriate data RDMA/bnxt_re: Add debugfs info entry for device and resource information RDMA/bnxt_re: Remove non-statistics counters from hw_counters
Bernard Metzler (1):
RDMA/siw: Always report immediate post SQ errors
Boshi Yu (1):
RDMA/erdma: Use dma_map_page to map scatter MTT buffer
Chenna Arnoori (1):
RDMA/bnxt_re: RoCE Driver Dynamic Debug for HWRM's
Christopher Bednarz (1):
RDMA/irdma: Discover and set up GEN3 hardware register layout
Damodharam Ammepalli (1):
RDMA/bnxt_re: Optimize bnxt_qplib_get_dev_attr function
Dan Carpenter (1):
RDMA/irdma: Fix positive vs negative error codes in irdma_post_send()
Edward Srouji (1):
RDMA/mlx5: Fix page size bitmap calculation for KSM mode
Faisal Latif (2):
RDMA/irdma: Add SRQ support
RDMA/irdma: Add Atomic Operations support
Fushuai Wang (1):
IB/hfi1: Use for_each_online_cpu() instead of for_each_cpu()
Gui-Dong Han (1):
RDMA/rxe: Fix race in do_task() when draining
Håkon Bugge (1):
RDMA/cm: Rate limit destroy CM ID timeout error message
Jacob Moroni (1):
RDMA/irdma: Remove unused struct irdma_cq fields
Kalesh AP (5):
RDMA/bnxt_re: Delete always true SGID table check RDMA/bnxt_re: Enhance a log message when bnxt_re_register_netdev fails RDMA/bnxt_re: Refactor hw context memory allocation RDMA/bnxt_re: Refactor stats context memory allocation RDMA/bnxt_re: Remove unnecessary condition checks
Kashyap Desai (1):
RDMA/bnxt_re: Show srq_limit in fill_res_srq_entry hook
Konstantin Taranov (1):
RDMA/mana_ib: Drain send wrs of GSI QP
Krzysztof Czurylo (2):
RDMA/irdma: Add GEN3 CQP support with deferred completions RDMA/irdma: Add GEN3 HW statistics support
Leon Romanovsky (1):
RDMA: Use %pe format specifier for error pointers
Mark Zhang (5):
RDMA/sa_query: Add RMPP support for SA queries RDMA/sa_query: Support IB service records resolution RDMA/cma: Support IB service record resolution RDMA/ucma: Support query resolved service records RDMA/ucma: Support write an event into a CM
Michael Margolin (1):
RDMA/efa: Extend admin timeout error print
Mustafa Ismail (3):
RDMA/irdma: Refactor GEN2 auxiliary driver RDMA/irdma: Add GEN3 core driver support RDMA/irdma: Introduce GEN3 vPort driver support
Or Har-Toov (1):
RDMA/mlx5: Better estimate max_qp_wr to reflect WQE count
Parav Pandit (3):
RDMA/core: Squash a single user static function RDMA/core: Resolve MAC of next-hop device without ARP support RDMA/core: Use route entry flag to decide on loopback traffic
Patrisious Haddad (1):
RDMA/mlx5: Fix vport loopback forcing for MPV device
Qianfeng Rong (2):
RDMA/erdma: Use vcalloc() instead of vzalloc() RDMA/rdmavt: Use int type to store negative error codes
Saravanan Vajravel (7):
bnxt_en: Enhance stats context reservation logic RDMA/bnxt_re: Add data structures for RoCE mirror support RDMA/bnxt_re: Add support for unique GID RDMA/bnxt_re: Add support for mirror vnic RDMA/bnxt_re: Add support for flow create/destroy RDMA/bnxt_re: Initialize fw with roce_mirror support RDMA/bnxt_re: Use firmware provided message timeout value
Shiraz Saleem (7):
RDMA/mana_ib: Extend modify QP
RDMA/irdma: Add GEN3 support for AEQ and CEQ RDMA/irdma: Add GEN3 virtual QP1 support
RDMA/irdma: Extend QP context programming for GEN3 RDMA/irdma: Support 64-byte CQEs and GEN3 CQE opcode decoding RDMA/irdma: Restrict Memory Window and CQE Timestamping to GEN3 RDMA/irdma: Extend CQE Error and Flush Handling for GEN3 Devices
Shravya KN (1):
RDMA/bnxt_re: Avoid GID level QoS update from the driver
Tatyana Nikolova (1):
RDMA/irdma: Update Kconfig
Thorsten Blum (1):
RDMA/bnxt_re: Call strscpy() with correct size argument
Vasuthevan Maheswaran (1):
RDMA/bnxt_re: RoCE related hardware counters update
Vinoth Kumar Chandra Mohan (1):
RDMA/irdma: Add support for V2 HMC resource management scheme
Vlad Dumitrescu (2):
IB/ipoib: Ignore L3 master device IB/sa: Fix sa_local_svc_timeout_ms read race
Xichao Zhao (1):
RDMA/core: fix "truely"->"truly"
Yishai Hadas (1):
RDMA/mlx5: Enable Data-Direct with Relaxed Ordering
.../networking/device_drivers/ethernet/index.rst | 1 + .../device_drivers/ethernet/pensando/ionic.rst | 10 + .../ethernet/pensando/ionic_rdma.rst | 52 + MAINTAINERS | 9 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/addr.c | 83 +- drivers/infiniband/core/agent.c | 3 +- drivers/infiniband/core/cm.c | 4 +- drivers/infiniband/core/cma.c | 136 +- drivers/infiniband/core/cma_priv.h | 4 +- drivers/infiniband/core/device.c | 2 +- drivers/infiniband/core/sa_query.c | 283 ++- drivers/infiniband/core/ucma.c | 120 +- drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/bnxt_re/bnxt_re.h | 19 +- drivers/infiniband/hw/bnxt_re/debugfs.c | 37 + drivers/infiniband/hw/bnxt_re/hw_counters.c | 109 +- drivers/infiniband/hw/bnxt_re/hw_counters.h | 26 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 156 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 10 + drivers/infiniband/hw/bnxt_re/main.c | 378 +-- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 13 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 2 + drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 10 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 + drivers/infiniband/hw/bnxt_re/qplib_res.c | 38 +- drivers/infiniband/hw/bnxt_re/qplib_res.h | 21 +- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 98 +- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 6 +- drivers/infiniband/hw/bnxt_re/roce_hsi.h | 44 +- drivers/infiniband/hw/cxgb4/device.c | 5 +- drivers/infiniband/hw/efa/efa_com.c | 18 +- drivers/infiniband/hw/efa/efa_verbs.c | 6 +- drivers/infiniband/hw/erdma/erdma_verbs.c | 110 +- drivers/infiniband/hw/erdma/erdma_verbs.h | 4 +- drivers/infiniband/hw/hfi1/device.c | 4 +- drivers/infiniband/hw/hfi1/sdma.c | 2 +- drivers/infiniband/hw/hfi1/user_sdma.c | 4 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 8 +- drivers/infiniband/hw/ionic/Kconfig | 15 + drivers/infiniband/hw/ionic/Makefile | 9 + drivers/infiniband/hw/ionic/ionic_admin.c | 1229 +++++++++ drivers/infiniband/hw/ionic/ionic_controlpath.c | 2679 ++++++++++++++++++++ drivers/infiniband/hw/ionic/ionic_datapath.c | 1399 ++++++++++ drivers/infiniband/hw/ionic/ionic_fw.h | 1029 ++++++++ drivers/infiniband/hw/ionic/ionic_hw_stats.c | 484 ++++ drivers/infiniband/hw/ionic/ionic_ibdev.c | 440 ++++ drivers/infiniband/hw/ionic/ionic_ibdev.h | 517 ++++ drivers/infiniband/hw/ionic/ionic_lif_cfg.c | 111 + drivers/infiniband/hw/ionic/ionic_lif_cfg.h | 66 + drivers/infiniband/hw/ionic/ionic_pgtbl.c | 143 ++ drivers/infiniband/hw/ionic/ionic_queue.c | 52 + drivers/infiniband/hw/ionic/ionic_queue.h | 234 ++ drivers/infiniband/hw/ionic/ionic_res.h | 154 ++ drivers/infiniband/hw/irdma/Kconfig | 7 +- drivers/infiniband/hw/irdma/Makefile | 4 + drivers/infiniband/hw/irdma/ctrl.c | 1468 ++++++++++- drivers/infiniband/hw/irdma/defs.h | 264 +- drivers/infiniband/hw/irdma/hmc.c | 18 +- drivers/infiniband/hw/irdma/hmc.h | 19 +- drivers/infiniband/hw/irdma/hw.c | 363 +-- drivers/infiniband/hw/irdma/i40iw_hw.c | 2 + drivers/infiniband/hw/irdma/i40iw_hw.h | 2 + drivers/infiniband/hw/irdma/i40iw_if.c | 3 + drivers/infiniband/hw/irdma/icrdma_hw.c | 3 + drivers/infiniband/hw/irdma/icrdma_hw.h | 5 +- drivers/infiniband/hw/irdma/icrdma_if.c | 343 +++ drivers/infiniband/hw/irdma/ig3rdma_hw.c | 170 ++ drivers/infiniband/hw/irdma/ig3rdma_hw.h | 32 + drivers/infiniband/hw/irdma/ig3rdma_if.c | 232 ++ drivers/infiniband/hw/irdma/irdma.h | 22 +- drivers/infiniband/hw/irdma/main.c | 371 +-- drivers/infiniband/hw/irdma/main.h | 35 +- drivers/infiniband/hw/irdma/pble.c | 20 +- drivers/infiniband/hw/irdma/protos.h | 1 + drivers/infiniband/hw/irdma/puda.h | 4 +- drivers/infiniband/hw/irdma/type.h | 221 +- drivers/infiniband/hw/irdma/uda_d.h | 5 +- drivers/infiniband/hw/irdma/uk.c | 303 ++- drivers/infiniband/hw/irdma/user.h | 267 +- drivers/infiniband/hw/irdma/utils.c | 112 +- drivers/infiniband/hw/irdma/verbs.c | 834 +++++- drivers/infiniband/hw/irdma/verbs.h | 50 +- drivers/infiniband/hw/irdma/virtchnl.c | 618 +++++ drivers/infiniband/hw/irdma/virtchnl.h | 176 ++ drivers/infiniband/hw/mana/cq.c | 26 + drivers/infiniband/hw/mana/device.c | 3 + drivers/infiniband/hw/mana/main.c | 5 +- drivers/infiniband/hw/mana/mana_ib.h | 14 +- drivers/infiniband/hw/mana/mr.c | 6 +- drivers/infiniband/hw/mana/qp.c | 9 + drivers/infiniband/hw/mlx4/mad.c | 8 +- drivers/infiniband/hw/mlx4/qp.c | 3 +- drivers/infiniband/hw/mlx5/data_direct.c | 2 +- drivers/infiniband/hw/mlx5/gsi.c | 15 +- drivers/infiniband/hw/mlx5/main.c | 113 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 7 + drivers/infiniband/hw/mlx5/mr.c | 11 +- drivers/infiniband/hw/mlx5/umr.c | 6 +- drivers/infiniband/sw/rdmavt/qp.c | 13 +- drivers/infiniband/sw/rxe/rxe_task.c | 8 +- drivers/infiniband/sw/siw/siw_verbs.c | 25 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 21 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 16 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 + drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 6 + drivers/net/ethernet/pensando/Kconfig | 1 + drivers/net/ethernet/pensando/ionic/Makefile | 2 +- drivers/net/ethernet/pensando/ionic/ionic.h | 7 - drivers/net/ethernet/pensando/ionic/ionic_api.h | 131 + drivers/net/ethernet/pensando/ionic/ionic_aux.c | 102 + drivers/net/ethernet/pensando/ionic/ionic_aux.h | 10 + .../net/ethernet/pensando/ionic/ionic_bus_pci.c | 7 + drivers/net/ethernet/pensando/ionic/ionic_dev.c | 270 +- drivers/net/ethernet/pensando/ionic/ionic_dev.h | 28 +- drivers/net/ethernet/pensando/ionic/ionic_if.h | 118 +- drivers/net/ethernet/pensando/ionic/ionic_lif.c | 47 +- drivers/net/ethernet/pensando/ionic/ionic_lif.h | 3 + drivers/net/ethernet/pensando/ionic/ionic_main.c | 4 +- include/rdma/ib_mad.h | 1 + include/rdma/ib_sa.h | 37 + include/rdma/rdma_cm.h | 21 +- include/uapi/rdma/ib_user_ioctl_verbs.h | 1 + include/uapi/rdma/ib_user_sa.h | 14 + include/uapi/rdma/ionic-abi.h | 115 + include/uapi/rdma/irdma-abi.h | 16 +- include/uapi/rdma/rdma_user_cm.h | 42 +- 128 files changed, 16190 insertions(+), 1488 deletions(-)
(diffstat from tag for-linus-merged)
The pull request you sent on Thu, 2 Oct 2025 21:02:44 -0300:
The pull request you sent on Thu, 2 Oct 2025 21:02:44 -0300:
Quoted 1 line
git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.gittags/for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/2ccb4d203fe4bec72fb333ccc2feb71a462c188d
Thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html