Hi Linus, Fairly normal pull request. The NFS biovec work to push it down into RDMA instead of indirecting through a scatterlist is pretty nice to see, been talked about for a long time now. There is a small conflict with v6.19: @@@ -55,11 -54,6 +54,10 @@@ int mana_ib_create_cq(struct ib_cq *ibc ibucontext); doorbell = mana_ucontext->doorbell; } else { - is_rnic_cq = true; + if (attr->cqe > U32_MAX / COMP_ENTRY_SIZE / 2 + 1) { + ibdev_dbg(ibdev, "CQE %d exceeding limit\n", attr->cqe); + return -EINVAL; + } buf_size = MANA_PAGE_ALIGN(roundup_pow_of_two(attr->cqe * COMP_ENTRY_SIZE)); cq->cqe = buf_size / COMP_ENTRY_SIZE; err = mana_ib_create_kernel_queue(mdev, buf_size, GDMA_CQ, &cq->queue); https://lore.kernel.org/r/aW5bFiqwjxpet-Tj@sirena.org.uk Thanks, Jason The following changes since commit fcf463b92a08686d1aeb1e66674a72eb7a8bfb9b: types: move phys_vec definition to common header (2026-01-06 05:47:54 -0700) 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 d6c58f4eb3d00a695f5a610ea780cad322ec714e: RDMA/mlx5: Implement DMABUF export ops (2026-02-08 23:50:41 -0500) ---------------------------------------------------------------- RDMA v7.0 merge window Usual smallish cycle: - Various code improvements in irdma, rtrs, qedr, ocrdma, irdma, rxe - Small driver improvements and minor bug fixes to hns, mlx5, rxe, mana, mlx5, irdma - Robusness improvements in completion processing for EFA - New query_port_speed() verb to move past limited IBA defined speed steps - Support for SG_GAPS in rts and many other small improvements - Rare list corruption fix in iwcm - Better support different page sizes in rxe - Device memory support for mana - Direct bio vec to kernel MR for use by NFS-RDMA - QP rate limiting for bnxt_re - Remote triggerable NULL pointer crash in siw - DMA-buf exporter support for RDMA mmaps like doorbells ---------------------------------------------------------------- Carlos Bilbao (1): RDMA/irdma: Use kvzalloc for paged memory DMA address array Chengchang Tang (3): RDMA/hns: Fix WQ_MEM_RECLAIM warning RDMA/hns: Notify ULP of remaining soft-WCs during reset RDMA/hns: Support drain SQ and RQ Chiara Meiohas (1): RDMA/mlx5: Fix UMR hang in LAG error state unload Chuck Lever (5): RDMA/core: add bio_vec based RDMA read/write API RDMA/core: use IOVA-based DMA mapping for bvec RDMA operations RDMA/core: add MR support for bvec-based RDMA operations RDMA/core: add rdma_rw_max_sge() helper for SQ sizing svcrdma: use bvec-based RDMA read/write API Etienne AUJAMES (1): IB/cache: update gid cache on client reregister event Grzegorz Prajsner (1): RDMA/rtrs-srv: Fix error print in process_info_req() Honggang LI (1): RDMA/rtrs: server: remove dead code Jack Wang (1): RDMA/rtrs-clt: Remove unused members in rtrs_clt_io_req Jacob Moroni (5): RDMA/irdma: Remove redundant dma_wmb() before writel() RDMA/irdma: Remove fixed 1 ms delay during AH wait loop RDMA/iwcm: Fix workqueue list corruption by removing work_list RDMA/irdma: Add enum defs for reserved CQs/QPs RDMA/irdma: Use CQ ID for CEQE context Jiapeng Chong (1): RDMA/irdma: Simplify bool conversion Jiasheng Jiang (1): RDMA/rxe: Fix double free in rxe_srq_from_init Junxian Huang (2): RDMA/hns: Return actual error code instead of fixed EINVAL RDMA/hns: Fix RoCEv1 failure due to DSCP Kalesh AP (5): RDMA/bnxt_re: Add support for QP rate limiting RDMA/bnxt_re: Report packet pacing capabilities when querying device RDMA/bnxt_re: Report QP rate limit in debugfs RDMA/mlx5: Support rate limit only for Raw Packet QP IB/core: Extend rate limit support for RC QPs Kim Zhu (4): RDMA/rtrs: Add error description to the logs RDMA/rtrs: Improve error logging for RDMA cm events RDMA/rtrs-srv: Rate-limit I/O path error logging RDMA/rtrs: Extend log message when a port fails Konstantin Taranov (2): RDMA/mana_ib: Take CQ type from the device type RDMA/mana_ib: Add device‑memory support Leon Romanovsky (8): Support effective VF bandwidth query in LAG mode RDMA/umem: Remove redundant DMABUF ops check RDMA/mlx5: Avoid direct access to DMA device pointer RDMA/qedr: Remove unused defines RDMA/ocrdma: Remove unused OCRDMA_UVERBS definition types: reuse common phys_vec type instead of DMABUF open‑coded variant MAINTAINERS: Drop RDMA files from Hyper-V section Merge tag 'common_phys_vec_via_vfio' into HEAD Li Zhijian (3): RDMA/rxe: Remove unused page_offset member RDMA/rxe: Fix iova-to-va conversion for MR page sizes != PAGE_SIZE RDMA/rxe: Fix race condition in QP timer handlers Lianfa Weng (1): RDMA/hns: Introduce limit_bank mode with better performance Maher Sanalla (1): RDMA/mlx5: Fix ucaps init error flow Md Haris Iqbal (3): RDMA/rtrs: Add optional support for IB_MR_TYPE_SG_GAPS RDMA/rtrs-srv: Add check and closure for possible zombie paths RDMA/rtrs-clt: For conn rejection use actual err number Or Har-Toov (7): IB/core: Add async event on device speed change IB/core: Add helper to convert port attributes to data rate IB/core: Refactor rate_show to use ib_port_attr_to_rate() IB/core: Add query_port_speed verb RDMA/mlx5: Raise async event on device speed change RDMA/mlx5: Implement query_port_speed callback IB/mlx5: Fix port speed query for representors Parav Pandit (1): RDMA/core: Avoid exporting module local functions and remove not-used ones Roman Penyaev (1): RDMA/rtrs-srv: fix SG mapping Yi Liu (2): RDMA/uverbs: Validate wqe_size before using it in ib_uverbs_post_send RDMA/uverbs: Add __GFP_NOWARN to ib_uverbs_unmarshall_recv() kmalloc Yishai Hadas (3): RDMA/uverbs: Support external FD uobjects RDMA/uverbs: Add DMABUF object type and operations RDMA/mlx5: Implement DMABUF export ops Yonatan Nachum (2): RDMA/efa: Check stored completion CTX command ID with received one RDMA/efa: Improve admin completion context state machine YunJe Shin (2): RDMA/umad: Reject negative data_len in ib_umad_write RDMA/siw: Fix potential NULL pointer dereference in header processing Zilin Guan (1): RDMA/mlx5: Fix memory leak in GET_DATA_DIRECT_SYSFS_PATH handler MAINTAINERS | 3 +- drivers/dma-buf/dma-buf-mapping.c | 6 +- drivers/infiniband/core/Makefile | 1 + drivers/infiniband/core/cache.c | 3 +- drivers/infiniband/core/device.c | 33 +- drivers/infiniband/core/ib_core_uverbs.c | 24 + drivers/infiniband/core/iwcm.c | 56 +-- drivers/infiniband/core/iwcm.h | 1 - drivers/infiniband/core/rdma_core.c | 63 ++- drivers/infiniband/core/rdma_core.h | 1 + drivers/infiniband/core/rw.c | 521 +++++++++++++++++++-- drivers/infiniband/core/sysfs.c | 56 +-- drivers/infiniband/core/umem_dmabuf.c | 3 - drivers/infiniband/core/user_mad.c | 8 +- drivers/infiniband/core/uverbs.h | 21 + drivers/infiniband/core/uverbs_cmd.c | 7 +- drivers/infiniband/core/uverbs_std_types_device.c | 42 ++ drivers/infiniband/core/uverbs_std_types_dmabuf.c | 200 ++++++++ drivers/infiniband/core/uverbs_uapi.c | 1 + drivers/infiniband/core/verbs.c | 61 ++- drivers/infiniband/hw/bnxt_re/debugfs.c | 14 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 34 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 12 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 3 + drivers/infiniband/hw/bnxt_re/qplib_res.h | 6 + drivers/infiniband/hw/bnxt_re/qplib_sp.c | 5 + drivers/infiniband/hw/bnxt_re/qplib_sp.h | 2 + drivers/infiniband/hw/bnxt_re/roce_hsi.h | 13 +- drivers/infiniband/hw/efa/efa_com.c | 97 ++-- drivers/infiniband/hw/hns/hns_roce_ah.c | 23 +- drivers/infiniband/hw/hns/hns_roce_cq.c | 12 +- drivers/infiniband/hw/hns/hns_roce_device.h | 6 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 220 ++++++++- drivers/infiniband/hw/hns/hns_roce_main.c | 5 + drivers/infiniband/hw/hns/hns_roce_qp.c | 49 +- drivers/infiniband/hw/hns/hns_roce_restrack.c | 4 +- drivers/infiniband/hw/irdma/ctrl.c | 67 +-- drivers/infiniband/hw/irdma/hw.c | 108 ++++- drivers/infiniband/hw/irdma/main.h | 2 + drivers/infiniband/hw/irdma/puda.c | 14 + drivers/infiniband/hw/irdma/type.h | 18 +- drivers/infiniband/hw/irdma/uk.c | 6 +- drivers/infiniband/hw/irdma/utils.c | 11 +- drivers/infiniband/hw/irdma/verbs.c | 21 +- drivers/infiniband/hw/mana/cq.c | 4 +- drivers/infiniband/hw/mana/device.c | 7 + drivers/infiniband/hw/mana/mana_ib.h | 12 + drivers/infiniband/hw/mana/mr.c | 130 +++++ drivers/infiniband/hw/mlx5/main.c | 305 +++++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 + drivers/infiniband/hw/mlx5/mr.c | 11 +- drivers/infiniband/hw/mlx5/qp.c | 5 + drivers/infiniband/hw/mlx5/std_types.c | 4 +- drivers/infiniband/hw/ocrdma/ocrdma.h | 2 - drivers/infiniband/hw/qedr/qedr.h | 20 - drivers/infiniband/sw/rxe/rxe_comp.c | 3 + drivers/infiniband/sw/rxe/rxe_mr.c | 282 +++++++---- drivers/infiniband/sw/rxe/rxe_odp.c | 1 - drivers/infiniband/sw/rxe/rxe_req.c | 3 + drivers/infiniband/sw/rxe/rxe_srq.c | 6 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 11 +- drivers/infiniband/sw/siw/siw_qp_rx.c | 3 +- drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 8 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 131 ++++-- drivers/infiniband/ulp/rtrs/rtrs-clt.h | 3 - drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 12 +- drivers/infiniband/ulp/rtrs/rtrs-srv.c | 192 +++++--- drivers/infiniband/ulp/rtrs/rtrs-srv.h | 1 + drivers/infiniband/ulp/rtrs/rtrs.c | 9 +- drivers/iommu/iommufd/io_pagetable.h | 2 +- drivers/iommu/iommufd/iommufd_private.h | 5 +- drivers/iommu/iommufd/pages.c | 4 +- drivers/iommu/iommufd/selftest.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 215 +++++++++ drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 11 + .../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 39 ++ .../net/ethernet/mellanox/mlx5/core/lag/mpesw.h | 14 + .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/port.c | 24 + drivers/net/ethernet/mellanox/mlx5/core/vport.c | 74 +++ drivers/vfio/pci/nvgrace-gpu/main.c | 2 +- drivers/vfio/pci/vfio_pci_dmabuf.c | 8 +- include/linux/dma-buf-mapping.h | 2 +- include/linux/dma-buf.h | 10 - include/linux/mlx5/driver.h | 1 + include/linux/mlx5/mlx5_ifc.h | 9 +- include/linux/mlx5/vport.h | 6 + include/linux/vfio_pci_core.h | 13 +- include/net/mana/gdma.h | 47 +- include/rdma/ib_verbs.h | 70 ++- include/rdma/rw.h | 22 + include/rdma/uverbs_types.h | 1 + include/uapi/rdma/bnxt_re-abi.h | 16 + include/uapi/rdma/ib_user_ioctl_cmds.h | 16 + include/uapi/rdma/mana-abi.h | 3 + net/sunrpc/xprtrdma/svc_rdma_rw.c | 155 +++--- net/sunrpc/xprtrdma/svc_rdma_transport.c | 8 +- 97 files changed, 3057 insertions(+), 755 deletions(-) create mode 100644 drivers/infiniband/core/uverbs_std_types_dmabuf.c