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/20250911122330.14834c0a@canb.auug.org.au 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)