[<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