diff mbox series

[GIT,PULL] Please pull RDMA subsystem changes

Message ID 20250328142313.GA117859@nvidia.com (mailing list archive)
State New
Headers show
Series [GIT,PULL] Please pull RDMA subsystem changes | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

Commit Message

Jason Gunthorpe March 28, 2025, 2:23 p.m. UTC
Hi Linus,

There is a bigger merge conflict in rxe against the rc branch. I've
provided the for-linus-merged tag with a merge to v6.14 containing
the resolution from linux-next.

Here is the diff:

+++ b/drivers/infiniband/hw/mlx5/mr.c
@@@ -2031,7 -2023,8 +2032,9 @@@ static int mlx5_revoke_mr(struct mlx5_i
  	struct mlx5_ib_dev *dev = to_mdev(mr->ibmr.device);
  	struct mlx5_cache_ent *ent = mr->mmkey.cache_ent;
  	bool is_odp = is_odp_mr(mr);
+ 	bool is_odp_dma_buf = is_dmabuf_mr(mr) &&
+ 			!to_ib_umem_dmabuf(mr->umem)->pinned;
 +	bool from_cache = !!ent;
  	int ret = 0;
  
  	if (is_odp)
+++ b/drivers/infiniband/sw/rxe/rxe.c
@@@ -71,45 -72,10 +69,39 @@@ static void rxe_init_device_param(struc
  	rxe->attr.max_pkeys			= RXE_MAX_PKEYS;
  	rxe->attr.local_ca_ack_delay		= RXE_LOCAL_CA_ACK_DELAY;
  
- 	ndev = rxe_ib_device_get_netdev(&rxe->ib_dev);
- 	if (!ndev)
- 		return;
- 
 +	if (ndev->addr_len) {
 +		memcpy(rxe->raw_gid, ndev->dev_addr,
 +			min_t(unsigned int, ndev->addr_len, ETH_ALEN));
 +	} else {
 +		/*
 +		 * This device does not have a HW address, but
 +		 * connection mangagement requires a unique gid.
 +		 */
 +		eth_random_addr(rxe->raw_gid);
 +	}
 +
  	addrconf_addr_eui48((unsigned char *)&rxe->attr.sys_image_guid,
 -			ndev->dev_addr);
 +			rxe->raw_gid);
  
- 	dev_put(ndev);
- 
  	rxe->max_ucontext			= RXE_MAX_UCONTEXT;
 +
 +	if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING)) {
 +		rxe->attr.kernel_cap_flags |= IBK_ON_DEMAND_PAGING;
 +
 +		/* IB_ODP_SUPPORT_IMPLICIT is not supported right now. */
 +		rxe->attr.odp_caps.general_caps |= IB_ODP_SUPPORT;
 +
 +		rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_SEND;
 +		rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_RECV;
 +		rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_SRQ_RECV;
 +
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_SEND;
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_RECV;
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_WRITE;
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_READ;
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_ATOMIC;
 +		rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_SRQ_RECV;
 +	}
  }
  
  /* initialize port attributes */
@@@ -141,18 -107,13 +133,13 @@@ static void rxe_init_port_param(struct 
  /* initialize port state, note IB convention that HCA ports are always
   * numbered from 1
   */
 -static void rxe_init_ports(struct rxe_dev *rxe, struct net_device *ndev)
 +static void rxe_init_ports(struct rxe_dev *rxe)
  {
  	struct rxe_port *port = &rxe->port;
- 	struct net_device *ndev;
  
  	rxe_init_port_param(port);
- 	ndev = rxe_ib_device_get_netdev(&rxe->ib_dev);
- 	if (!ndev)
- 		return;
  	addrconf_addr_eui48((unsigned char *)&port->port_guid,
 -			    ndev->dev_addr);
 +			    rxe->raw_gid);
- 	dev_put(ndev);
  	spin_lock_init(&port->port_lock);
  }
  
@@@ -170,12 -131,12 +157,12 @@@ static void rxe_init_pools(struct rxe_d
  }
  
  /* initialize rxe device state */
- static void rxe_init(struct rxe_dev *rxe)
+ static void rxe_init(struct rxe_dev *rxe, struct net_device *ndev)
  {
  	/* init default device parameters */
- 	rxe_init_device_param(rxe);
+ 	rxe_init_device_param(rxe, ndev);
  
 -	rxe_init_ports(rxe, ndev);
 +	rxe_init_ports(rxe);
  	rxe_init_pools(rxe);
  
  	/* init pending mmap list */

Thanks,
Jason

The tag for-linus-merged with my merge resolution to your tree is also available to pull.

The following changes since commit 15b103df80b25025040faa8f35164c2595977bdb:

  net/mlx5: fs, add RDMA TRANSPORT steering domain support (2025-03-08 13:22:49 -0500)

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 37826f0a8c2f6b6add5179003b8597e32a445362:

  IB/mad: Check available slots before posting receive WRs (2025-03-19 04:43:03 -0400)

----------------------------------------------------------------
RDMA v6.15 merge window pull request

- Usual minor updates and fixes for bnxt_re, hfi1, rxe, mana, iser, mlx5,
  vmw_pvrdma, hns

- Make rxe work on tun devices

- mana gains more standard verbs as it moves toward supporting in-kernel
  verbs

- DMABUF support for mana

- Fix page size calculations when memory registration exceeds 4G

- On Demand Paging support for rxe

- mlx5 support for RDMA TRANSPORT flow tables and a new ucap mechanism to
  access control use of them

- Optional RDMA_TX/RX counters per QP in mlx5

----------------------------------------------------------------
Cheng Xu (1):
      RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()

Chiara Meiohas (6):
      RDMA/uverbs: Introduce UCAP (User CAPabilities) API
      RDMA/mlx5: Create UCAP char devices for supported device capabilities
      RDMA/uverbs: Add support for UCAPs in context creation
      RDMA/mlx5: Check enabled UCAPs when creating ucontext
      docs: infiniband: document the UCAP API
      RDMA/mlx5: Fix calculation of total invalidated pages

Christian Göttsche (1):
      RDMA/mlx5: Reorder capability check last

Daisuke Matsuda (7):
      RDMA/rxe: Move some code to rxe_loc.h in preparation for ODP
      RDMA/rxe: Add page invalidation support
      RDMA/rxe: Allow registering MRs for On-Demand Paging
      RDMA/rxe: Add support for Send/Recv/Write/Read with ODP
      RDMA/rxe: Add support for the traditional Atomic operations with ODP
      RDMA/rxe: Improve readability of ODP pagefault interface
      RDMA/rxe: Fix incorrect return value of rxe_odp_atomic_op()

Dan Carpenter (3):
      RDMA/mana_ib: Fix error code in probe()
      RDMA/bnxt_re: Fix buffer overflow in debugfs code
      RDMA/mana_ib: Use safer allocation function()

Dr. David Alan Gilbert (2):
      RDMA/hfi1: Remove unused one_qsfp_write
      RDMA/vmw_pvrdma: Remove unused pvrdma_modify_device

Eric Biggers (3):
      RDMA/rxe: switch to using the crc32 library
      RDMA/irdma: Switch to using the crc32c library
      RDMA/siw: Switch to using the crc32c library

Guofeng Yue (1):
      RDMA/hns: Inappropriate format characters cleanup

Imanol (1):
      IB/iser: fix typos in iscsi_iser.c comments

Kees Bakker (1):
      RDMA/mana_ib: Ensure variable err is initialized

Konstantin Taranov (16):
      RDMA/mana_ib: Allow registration of DMA-mapped memory in PDs
      RDMA/mana_ib: implement get_dma_mr
      RDMA/mana_ib: helpers to allocate kernel queues
      RDMA/mana_ib: create kernel-level CQs
      RDMA/mana_ib: Create and destroy UD/GSI QP
      RDMA/mana_ib: UD/GSI QP creation for kernel
      RDMA/mana_ib: create/destroy AH
      net/mana: fix warning in the writer of client oob
      RDMA/mana_ib: UD/GSI work requests
      RDMA/mana_ib: implement req_notify_cq
      RDMA/mana_ib: extend mana QP table
      RDMA/mana_ib: polling of CQs for GSI/UD
      RDMA/mana_ib: indicate CM support
      RDMA/mana_ib: request error CQEs when supported
      RDMA/mana_ib: Implement DMABUF MR support
      RDMA/mana_ib: Fix integer overflow during queue creation

Leon Romanovsky (2):
      Merge branch 'mlx5-next' into wip/leon-for-next
      Add support and infrastructure for RDMA TRANSPORT

Long Li (2):
      net: mana: Change the function signature of mana_get_primary_netdev_rcu
      RDMA/mana_ib: Handle net event for pointing to the current netdev

Maher Sanalla (5):
      IB/cache: Add log messages for IB device state changes
      RDMA/core: Use ib_port_state_to_str() for IB state sysfs
      IB/hfi1: Remove state transition log message and opa_lstate_name()
      RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject()
      IB/mad: Check available slots before posting receive WRs

Michael Guralnik (4):
      RDMA/mlx5: Fix MR cache initialization error flow
      RDMA/mlx5: Fix cache entry update on dereg error
      RDMA/mlx5: Drop access_flags from _mlx5_mr_cache_alloc()
      RDMA/mlx5: Fix page_size variable overflow

Michael Margolin (1):
      RDMA/core: Fix best page size finding when it can cross SG entries

Nicolas Bouchinet (1):
      RDMA/core: Fixes infiniband sysctl bounds

Patrisious Haddad (8):
      RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace
      RDMA/mlx5: Add optional counters for RDMA_TX/RX_packets/bytes
      RDMA/core: Create and destroy rdma_counter using rdma_zalloc_drv_obj()
      RDMA/core: Add support to optional-counters binding configuration
      RDMA/core: Pass port to counter bind/unbind operations
      RDMA/mlx5: Compile fs.c regardless of INFINIBAND_USER_ACCESS config
      RDMA/mlx5: Support optional-counters binding for QPs
      RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow

Preethi G (1):
      RDMA/bnxt_re: Support perf management counters

Roman Gushchin (1):
      RDMA/core: Don't expose hw_counters outside of init net namespace

Selvin Xavier (2):
      RDMA/bnxt_re: Congestion control settings using debugfs hook
      RDMA/bnxt_re: Fix the condition check while programming congestion control

Shiraz Saleem (2):
      RDMA/mana_ib: Query feature_flags bitmask from FW
      RDMA/mana_ib: Add port statistics support

Wang Liang (1):
      RDMA/core: Fix use-after-free when rename device name

Zhu Yanjun (3):
      RDMA/rxe: Replace netdev dev addr with raw_gid
      RDMA/rxe: Add query_gid support
      RDMA/rxe: Make rping work with tun device

 Documentation/infiniband/index.rst                 |   1 +
 Documentation/infiniband/ucaps.rst                 |  71 +++
 drivers/infiniband/core/Makefile                   |   3 +-
 drivers/infiniband/core/cache.c                    |   6 +
 drivers/infiniband/core/cma.c                      |  24 +-
 drivers/infiniband/core/counters.c                 |  52 +-
 drivers/infiniband/core/device.c                   |  20 +-
 drivers/infiniband/core/iwcm.c                     |   4 +-
 drivers/infiniband/core/mad.c                      |  38 +-
 drivers/infiniband/core/nldev.c                    |  18 +-
 drivers/infiniband/core/sysfs.c                    |  15 +-
 drivers/infiniband/core/ucaps.c                    | 267 +++++++++
 drivers/infiniband/core/ucma.c                     |   4 +-
 drivers/infiniband/core/umem.c                     |  36 +-
 drivers/infiniband/core/uverbs_cmd.c               | 163 +++---
 drivers/infiniband/core/uverbs_main.c              |   2 +
 drivers/infiniband/core/uverbs_std_types_device.c  |   4 +
 drivers/infiniband/core/verbs.c                    |  13 +-
 drivers/infiniband/hw/bnxt_re/bnxt_re.h            |   6 +
 drivers/infiniband/hw/bnxt_re/debugfs.c            | 215 ++++++-
 drivers/infiniband/hw/bnxt_re/debugfs.h            |  15 +
 drivers/infiniband/hw/bnxt_re/hw_counters.c        |  92 +++
 drivers/infiniband/hw/bnxt_re/ib_verbs.c           |  36 ++
 drivers/infiniband/hw/bnxt_re/ib_verbs.h           |   6 +
 drivers/infiniband/hw/bnxt_re/main.c               |   1 +
 drivers/infiniband/hw/erdma/erdma_cm.c             |   1 -
 drivers/infiniband/hw/hfi1/chip.c                  |  18 -
 drivers/infiniband/hw/hfi1/chip.h                  |   1 -
 drivers/infiniband/hw/hfi1/driver.c                |   2 +-
 drivers/infiniband/hw/hfi1/mad.c                   |   4 +-
 drivers/infiniband/hw/hfi1/qsfp.c                  |  20 -
 drivers/infiniband/hw/hfi1/qsfp.h                  |   2 -
 drivers/infiniband/hw/hns/hns_roce_mr.c            |   2 +-
 drivers/infiniband/hw/hns/hns_roce_qp.c            |   2 +-
 drivers/infiniband/hw/hns/hns_roce_srq.c           |   2 +-
 drivers/infiniband/hw/irdma/Kconfig                |   1 +
 drivers/infiniband/hw/irdma/main.h                 |   1 -
 drivers/infiniband/hw/irdma/osdep.h                |   6 +-
 drivers/infiniband/hw/irdma/puda.c                 |  19 +-
 drivers/infiniband/hw/irdma/puda.h                 |   5 +-
 drivers/infiniband/hw/irdma/utils.c                |  47 +-
 drivers/infiniband/hw/mana/Makefile                |   2 +-
 drivers/infiniband/hw/mana/ah.c                    |  58 ++
 drivers/infiniband/hw/mana/counters.c              | 105 ++++
 drivers/infiniband/hw/mana/counters.h              |  44 ++
 drivers/infiniband/hw/mana/cq.c                    | 228 +++++++-
 drivers/infiniband/hw/mana/device.c                |  82 ++-
 drivers/infiniband/hw/mana/main.c                  | 103 +++-
 drivers/infiniband/hw/mana/mana_ib.h               | 210 ++++++-
 drivers/infiniband/hw/mana/mr.c                    | 105 ++++
 drivers/infiniband/hw/mana/qp.c                    | 245 +++++++-
 drivers/infiniband/hw/mana/shadow_queue.h          | 115 ++++
 drivers/infiniband/hw/mana/wr.c                    | 168 ++++++
 drivers/infiniband/hw/mlx5/Makefile                |   2 +-
 drivers/infiniband/hw/mlx5/counters.c              | 195 ++++++-
 drivers/infiniband/hw/mlx5/counters.h              |  15 +
 drivers/infiniband/hw/mlx5/cq.c                    |   2 +-
 drivers/infiniband/hw/mlx5/devx.c                  |  41 +-
 drivers/infiniband/hw/mlx5/devx.h                  |   5 +-
 drivers/infiniband/hw/mlx5/fs.c                    | 637 ++++++++++++++++++++-
 drivers/infiniband/hw/mlx5/fs.h                    |  17 +-
 drivers/infiniband/hw/mlx5/main.c                  |  77 ++-
 drivers/infiniband/hw/mlx5/mlx5_ib.h               |  23 +
 drivers/infiniband/hw/mlx5/mr.c                    |  52 +-
 drivers/infiniband/hw/mlx5/odp.c                   |  10 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c    |  28 -
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h    |   2 -
 drivers/infiniband/sw/rxe/Kconfig                  |   3 +-
 drivers/infiniband/sw/rxe/Makefile                 |   2 +
 drivers/infiniband/sw/rxe/rxe.c                    |  40 +-
 drivers/infiniband/sw/rxe/rxe.h                    |  38 --
 drivers/infiniband/sw/rxe/rxe_icrc.c               |  40 +-
 drivers/infiniband/sw/rxe/rxe_loc.h                |  35 +-
 drivers/infiniband/sw/rxe/rxe_mr.c                 |  13 +-
 drivers/infiniband/sw/rxe/rxe_odp.c                | 326 +++++++++++
 drivers/infiniband/sw/rxe/rxe_req.c                |   1 -
 drivers/infiniband/sw/rxe/rxe_resp.c               |  18 +-
 drivers/infiniband/sw/rxe/rxe_verbs.c              |  24 +-
 drivers/infiniband/sw/rxe/rxe_verbs.h              |  42 +-
 drivers/infiniband/sw/siw/Kconfig                  |   4 +-
 drivers/infiniband/sw/siw/siw.h                    |  37 +-
 drivers/infiniband/sw/siw/siw_main.c               |  22 +-
 drivers/infiniband/sw/siw/siw_qp.c                 |  54 +-
 drivers/infiniband/sw/siw/siw_qp_rx.c              |  23 +-
 drivers/infiniband/sw/siw/siw_qp_tx.c              |  44 +-
 drivers/infiniband/sw/siw/siw_verbs.c              |   3 -
 drivers/infiniband/ulp/iser/iscsi_iser.c           |   8 +-
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c      | 120 +++-
 .../ethernet/mellanox/mlx5/core/esw/acl/helper.c   |   2 +-
 .../net/ethernet/mellanox/mlx5/core/esw/legacy.c   |   2 +-
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c |   6 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c   |   2 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  | 178 +++++-
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.h  |  12 +-
 .../net/ethernet/mellanox/mlx5/core/fs_ft_pool.c   |   6 +-
 .../net/ethernet/mellanox/mlx5/core/fs_ft_pool.h   |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/fw.c       |   7 +
 .../ethernet/mellanox/mlx5/core/lib/fs_chains.c    |   3 +-
 drivers/net/ethernet/mellanox/mlx5/core/main.c     |   1 +
 drivers/net/ethernet/microsoft/mana/gdma_main.c    |   7 +-
 drivers/net/ethernet/microsoft/mana/mana_en.c      |  22 +-
 include/linux/mlx5/device.h                        |  16 +-
 include/linux/mlx5/driver.h                        |   6 +
 include/linux/mlx5/fs.h                            |  12 +-
 include/linux/mlx5/mlx5_ifc.h                      |  53 +-
 include/net/mana/gdma.h                            |   7 +
 include/net/mana/mana.h                            |   4 +-
 include/rdma/ib_ucaps.h                            |  30 +
 include/rdma/ib_verbs.h                            |  30 +-
 include/rdma/rdma_counter.h                        |   7 +-
 include/rdma/uverbs_std_types.h                    |   2 +-
 include/uapi/rdma/ib_user_ioctl_cmds.h             |   1 +
 include/uapi/rdma/mlx5_user_ioctl_cmds.h           |   1 +
 include/uapi/rdma/mlx5_user_ioctl_verbs.h          |   2 +
 include/uapi/rdma/rdma_netlink.h                   |   2 +
 115 files changed, 4433 insertions(+), 703 deletions(-)
(diffstat from tag for-linus-merged)

Comments

pr-tracker-bot@kernel.org March 29, 2025, 6:24 p.m. UTC | #1
The pull request you sent on Fri, 28 Mar 2025 11:23:13 -0300:

> git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/092e335082f22880207384ad736729c67d784665

Thank you!
diff mbox series

Patch

diff --cc drivers/infiniband/hw/mlx5/mr.c
index 2080458cabd1ca,753faa9ad06a88..b7c8c926c57870
--- a/drivers/infiniband/hw/mlx5/mr.c
diff --cc drivers/infiniband/sw/rxe/rxe.c
index 4e56a371deb5ff,e27478fe9456c9..c83e2cf8274814
--- a/drivers/infiniband/sw/rxe/rxe.c