Skip to contentSkip to conversation

Please pull RDMA subsystem changes

GIT PULL Merged Jason Gunthorpe 2 participants 2 messages Oct 3, 2025 – Oct 4, 2025 InfiniBand

lore
Share & tools
lore

Jason Gunthorpe

author maintainer
#0 lore raw

Hi 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)