lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250123171458.GA1053362@nvidia.com>
Date: Thu, 23 Jan 2025 13:14:58 -0400
From: Jason Gunthorpe <jgg@...dia.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-rdma@...r.kernel.org, linux-kernel@...r.kernel.org,
	Leon Romanovsky <leonro@...dia.com>
Subject: [GIT PULL] Please pull RDMA subsystem changes

Hi Linus,

As seems to be typical, this is a smaller PR probably due to the
holidays, but also normalish for RDMA right now. The new ROCEv2 support
for ERDMA stands out as the largest functional change.

There are some non-trivial merge conflicts with the RDMA -rc branch,
it took a couple of rounds with Stephen to get things sorted, but this
is what has been in linux-next for a while now.

    https://lore.kernel.org/r/20250106105106.3d94b0c3@canb.auug.org.au
    https://lore.kernel.org/r/20250106120252.000a2afa@canb.auug.org.au
    https://lore.kernel.org/r/20250106111307.7d0f55ba@canb.auug.org.au

I've also prepared the tag for-linus-merged with the agreed linux-next
merge resolution using v6.13 that you may prefer to pull instead of
this unmerged tag.

Otherwise, here is git show of my merge commit, which matches
linux-next, for reference:

diff --cc drivers/infiniband/sw/rxe/rxe_net.c
index d400aaab0e7000,8cc64ceeb3569b..132a87e52d5c7e
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@@ -577,7 -595,13 +585,13 @@@ void rxe_port_down(struct rxe_dev *rxe
  
  void rxe_set_port_state(struct rxe_dev *rxe)
  {
- 	if (ib_get_curr_port_state(rxe->ndev) == IB_PORT_ACTIVE)
+ 	struct net_device *ndev;
+ 
+ 	ndev = rxe_ib_device_get_netdev(&rxe->ib_dev);
+ 	if (!ndev)
+ 		return;
+ 
 -	if (netif_running(ndev) && netif_carrier_ok(ndev))
++	if (ib_get_curr_port_state(ndev) == IB_PORT_ACTIVE)
  		rxe_port_up(rxe);
  	else
  		rxe_port_down(rxe);
diff --cc drivers/infiniband/sw/rxe/rxe_verbs.c
index dad3cacb904880,8a5fc20fd18692..6152a0fdfc8caa
--- a/drivers/infiniband/sw/rxe/rxe_verbs.c
+++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
@@@ -55,10 -62,9 +62,10 @@@ static int rxe_query_port(struct ib_dev
  	ret = ib_get_eth_speed(ibdev, port_num, &attr->active_speed,
  			       &attr->active_width);
  
- 	attr->state = ib_get_curr_port_state(rxe->ndev);
++	attr->state = ib_get_curr_port_state(ndev);
  	if (attr->state == IB_PORT_ACTIVE)
  		attr->phys_state = IB_PORT_PHYS_STATE_LINK_UP;
- 	else if (dev_get_flags(rxe->ndev) & IFF_UP)
+ 	else if (dev_get_flags(ndev) & IFF_UP)
  		attr->phys_state = IB_PORT_PHYS_STATE_POLLING;
  	else
  		attr->phys_state = IB_PORT_PHYS_STATE_DISABLED;
diff --cc drivers/infiniband/sw/siw/siw_verbs.c
index 592a015cc4c6a0,7ca0297d68a4a7..5ac8bd450d2407
--- a/drivers/infiniband/sw/siw/siw_verbs.c
+++ b/drivers/infiniband/sw/siw/siw_verbs.c
@@@ -178,13 -178,21 +178,20 @@@ int siw_query_port(struct ib_device *ba
  
  	rv = ib_get_eth_speed(base_dev, port, &attr->active_speed,
  			 &attr->active_width);
+ 	if (rv)
+ 		return rv;
+ 
+ 	ndev = ib_device_get_netdev(base_dev, SIW_PORT);
+ 	if (!ndev)
+ 		return -ENODEV;
+ 
  	attr->gid_tbl_len = 1;
  	attr->max_msg_sz = -1;
- 	attr->max_mtu = ib_mtu_int_to_enum(sdev->netdev->mtu);
- 	attr->active_mtu = ib_mtu_int_to_enum(sdev->netdev->mtu);
- 	attr->state = ib_get_curr_port_state(sdev->netdev);
+ 	attr->max_mtu = ib_mtu_int_to_enum(ndev->max_mtu);
+ 	attr->active_mtu = ib_mtu_int_to_enum(READ_ONCE(ndev->mtu));
 -	attr->phys_state = (netif_running(ndev) && netif_carrier_ok(ndev)) ?
++	attr->state = ib_get_curr_port_state(ndev);
 +	attr->phys_state = attr->state == IB_PORT_ACTIVE ?
  		IB_PORT_PHYS_STATE_LINK_UP : IB_PORT_PHYS_STATE_DISABLED;
 -	attr->state = attr->phys_state == IB_PORT_PHYS_STATE_LINK_UP ?
 -		IB_PORT_ACTIVE : IB_PORT_DOWN;
  	attr->port_cap_flags = IB_PORT_CM_SUP | IB_PORT_DEVICE_MGMT_SUP;
  	/*
  	 * All zero

Thanks,
Jason

The following changes since commit 40384c840ea1944d7c5a392e8975ed088ecf0b37:

  Linux 6.13-rc1 (2024-12-01 14:28:56 -0800)

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 d3d930411ce390e532470194296658a960887773:

  RDMA/mlx5: Fix implicit ODP use after free (2025-01-21 14:10:49 -0400)

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

Lighter that normal, but the now usual collection of driver fixes and
small improvements:

- Small fixes and minor improvements to cxgb4, bnxt_re, rxe, srp, efa,
  cxgb4

- Update mlx4 to use the new umem APIs, avoiding direct use of scatterlist

- Support ROCEv2 in erdma

- Remove various uncalled functions, constify bin_attribute

- Provide core infrastructure to catch netdev events and route them to
  drivers, consolidating duplicated driver code

- Fix rare race condition crashes in mlx5 ODP flows

----------------------------------------------------------------
Advait Dhamorikar (1):
      RDMA/erdma: Fix opcode conditional check

Anumula Murali Mohan Reddy (1):
      RDMA/cxgb4: Notify rdma stack for IB_EVENT_QP_LAST_WQE_REACHED event

Boshi Yu (12):
      RDMA/erdma: Probe the erdma RoCEv2 device
      RDMA/erdma: Add GID table management interfaces
      RDMA/erdma: Add the erdma_query_pkey() interface
      RDMA/erdma: Add address handle implementation
      RDMA/erdma: Add erdma_modify_qp_rocev2() interface
      RDMA/erdma: Refactor the code of the modify_qp interface
      RDMA/erdma: Add the query_qp command to the cmdq
      RDMA/erdma: Support UD QPs and UD WRs
      RDMA/erdma: Add missing fields to the erdma_device_ops_rocev2
      RDMA/erdma: Fix incorrect response returned from query_qp
      RDMA/erdma: Support non-sleeping erdma_post_cmd_wait()
      RDMA/erdma: Support create_ah/destroy_ah in non-sleepable contexts

Chiara Meiohas (1):
      RDMA/mlx5: Extend ODP statistics with operation count

Dan Carpenter (1):
      rdma/cxgb4: Prevent potential integer overflow on 32bit

Dr. David Alan Gilbert (6):
      IB/hfi1: Remove unused hfi1_format_hwerrors
      RDMA/irdma: Remove unused irdma_cqp_*_fpm_val_cmd functions
      RDMA/core: Remove unused ib_ud_header_unpack
      RDMA/core: Remove unused ib_find_exact_cached_pkey
      RDMA/core: Remove unused ibdev_printk
      RDMA/core: Remove unused ib_copy_path_rec_from_user

Junxian Huang (1):
      RDMA/hns: Clean up the legacy CONFIG_INFINIBAND_HNS

Kalesh AP (11):
      RDMA/bnxt_re: Remove extra new line in bnxt_re_netdev_event
      RDMA/bnxt_re: Remove unnecessary goto in bnxt_re_netdev_event
      RDMA/bnxt_re: Optimize error handling in bnxt_re_probe
      RDMA/bnxt_re: Eliminate need for some forward declarations
      RDMA/bnxt_re: Remove unnecessary header file inclusion
      RDMA/bnxt_re: Fix to drop reference to the mmap entry in case of error
      RDMA/bnxt_re: Add Async event handling support
      RDMA/bnxt_re: Query firmware defaults of CC params during probe
      RDMA/bnxt_re: Add support to handle DCB_CONFIG_CHANGE event
      RDMA/bnxt_re: Pass the context for ulp_irq_stop
      RDMA/bnxt_re: Allocate dev_attr information dynamically

Leon Romanovsky (3):
      RDMA/mlx4: Avoid false error about access to uninitialized gids array
      RDMA/mlx4: Use ib_umem_find_best_pgsz() to calculate MTT size
      RDMA/mlx4: Use DMA iterator to write MTT

Li Zhijian (1):
      RDMA/rtrs: Add missing deinit() call

Ma Ke (1):
      RDMA/srp: Fix error handling in srp_add_port

Michael Chan (1):
      bnxt_en: Add ULP call to notify async events

Michael Guralnik (1):
      RDMA/mlx5: Fix indirect mkey ODP page count

Michael Margolin (1):
      RDMA/efa: Reset device on probe failure

Patrisious Haddad (2):
      RDMA/mlx5: Fix link status down event for MPV
      RDMA/mlx5: Fix implicit ODP use after free

Selvin Xavier (1):
      MAINTAINERS: Update the bnxt_re maintainers

Thomas Weißschuh (2):
      RDMA/hfi1: Constify 'struct bin_attribute'
      RDMA/qib: Constify 'struct bin_attribute'

Yishai Hadas (1):
      RDMA/mlx5: Fix a race for an ODP MR which leads to CQE with error

Yonatan Nachum (1):
      RDMA/efa: Align interrupt related fields to same type

Yuyu Li (12):
      RDMA/core: Add ib_query_netdev_port() to query netdev port by IB device.
      RDMA/core: Support link status events dispatching
      RDMA/bnxt_re: Remove deliver net device event
      RDMA/erdma: Remove deliver net device event
      RDMA/irdma: Remove deliver net device event
      RDMA/rxe: Remove deliver net device event
      RDMA/siw: Remove deliver net device event
      RDMA/usnic: Support report_port_event() ops
      RDMA/mlx4: Support report_port_event() ops
      RDMA/pvrdma: Support report_port_event() ops
      RDMA/mlx5: Handle link status event only for LAG device
      RDMA/hns: Support fast path for link-down events dispatching

Zhu Yanjun (1):
      RDMA/rxe: Fix the warning "__rxe_cleanup+0x12c/0x170 [rdma_rxe]"

zhenwei pi (1):
      RDMA/rxe: Fix mismatched max_msg_sz

 MAINTAINERS                                    |   1 +
 drivers/infiniband/core/cache.c                |  35 --
 drivers/infiniband/core/device.c               | 116 +++--
 drivers/infiniband/core/ud_header.c            |  83 ----
 drivers/infiniband/core/uverbs_marshall.c      |  42 --
 drivers/infiniband/hw/Makefile                 |   2 +-
 drivers/infiniband/hw/bnxt_re/bnxt_re.h        |   5 +-
 drivers/infiniband/hw/bnxt_re/hw_counters.c    |  11 +-
 drivers/infiniband/hw/bnxt_re/ib_verbs.c       |  47 +-
 drivers/infiniband/hw/bnxt_re/main.c           | 339 +++++++++------
 drivers/infiniband/hw/bnxt_re/qplib_fp.h       |   1 +
 drivers/infiniband/hw/bnxt_re/qplib_res.c      |   7 +-
 drivers/infiniband/hw/bnxt_re/qplib_res.h      |   4 +-
 drivers/infiniband/hw/bnxt_re/qplib_sp.c       | 117 ++++-
 drivers/infiniband/hw/bnxt_re/qplib_sp.h       |   6 +-
 drivers/infiniband/hw/cxgb4/device.c           |   6 +-
 drivers/infiniband/hw/cxgb4/qp.c               |   8 +
 drivers/infiniband/hw/efa/efa.h                |   8 +-
 drivers/infiniband/hw/efa/efa_com.h            |   6 +-
 drivers/infiniband/hw/efa/efa_main.c           |  28 +-
 drivers/infiniband/hw/erdma/Kconfig            |   2 +-
 drivers/infiniband/hw/erdma/erdma.h            |  14 +-
 drivers/infiniband/hw/erdma/erdma_cm.c         |  71 ++--
 drivers/infiniband/hw/erdma/erdma_cmdq.c       |  26 +-
 drivers/infiniband/hw/erdma/erdma_cq.c         |  65 +++
 drivers/infiniband/hw/erdma/erdma_eq.c         |   6 +-
 drivers/infiniband/hw/erdma/erdma_hw.h         | 135 +++++-
 drivers/infiniband/hw/erdma/erdma_main.c       |  62 ++-
 drivers/infiniband/hw/erdma/erdma_qp.c         | 301 ++++++++++---
 drivers/infiniband/hw/erdma/erdma_verbs.c      | 568 +++++++++++++++++++++----
 drivers/infiniband/hw/erdma/erdma_verbs.h      | 166 ++++++--
 drivers/infiniband/hw/hfi1/hfi.h               |  14 -
 drivers/infiniband/hw/hfi1/intr.c              |  31 --
 drivers/infiniband/hw/hfi1/sysfs.c             |  14 +-
 drivers/infiniband/hw/hns/Kconfig              |  20 +-
 drivers/infiniband/hw/hns/Makefile             |   9 +-
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c     |  13 +
 drivers/infiniband/hw/irdma/osdep.h            |   4 -
 drivers/infiniband/hw/irdma/protos.h           |   4 -
 drivers/infiniband/hw/irdma/utils.c            |  71 ----
 drivers/infiniband/hw/mlx4/cq.c                |   6 +-
 drivers/infiniband/hw/mlx4/main.c              |  60 +--
 drivers/infiniband/hw/mlx4/mlx4_ib.h           |  18 +-
 drivers/infiniband/hw/mlx4/mr.c                | 286 +------------
 drivers/infiniband/hw/mlx4/qp.c                |  12 +-
 drivers/infiniband/hw/mlx5/main.c              |   4 +
 drivers/infiniband/hw/mlx5/mlx5_ib.h           |   6 +
 drivers/infiniband/hw/mlx5/mr.c                |  17 +-
 drivers/infiniband/hw/mlx5/odp.c               |  70 +--
 drivers/infiniband/hw/mlx5/restrack.c          |   9 +
 drivers/infiniband/hw/qib/qib_sysfs.c          |  16 +-
 drivers/infiniband/hw/usnic/usnic_ib_main.c    |  73 ++--
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c |  66 +--
 drivers/infiniband/sw/rxe/rxe_net.c            |  22 +-
 drivers/infiniband/sw/rxe/rxe_param.h          |   2 +-
 drivers/infiniband/sw/rxe/rxe_pool.c           |  11 +-
 drivers/infiniband/sw/rxe/rxe_verbs.c          |   6 +-
 drivers/infiniband/sw/siw/siw_main.c           |   8 -
 drivers/infiniband/sw/siw/siw_verbs.c          |   5 +-
 drivers/infiniband/ulp/rtrs/rtrs.c             |   3 +
 drivers/infiniband/ulp/srp/ib_srp.c            |   1 -
 drivers/net/ethernet/broadcom/bnxt/bnxt.c      |   1 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c  |  39 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h  |   8 +-
 include/rdma/ib_cache.h                        |  16 -
 include/rdma/ib_marshall.h                     |   3 -
 include/rdma/ib_pack.h                         |   3 -
 include/rdma/ib_verbs.h                        |  24 +-
 68 files changed, 2009 insertions(+), 1254 deletions(-)
(diffstat from tag for-linus-merged)

Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ