patch 'net/mana: check vendor ID when probing RDMA device' has been queued to stable release 23.11.5

Xueming Li xuemingl at nvidia.com
Thu Jun 26 14:01:11 CEST 2025


Hi,

FYI, your patch has been queued to stable release 23.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/28/25. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2e2c96c0385d790636c1adee23c938ac5ad01200

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From 2e2c96c0385d790636c1adee23c938ac5ad01200 Mon Sep 17 00:00:00 2001
From: Long Li <longli at microsoft.com>
Date: Mon, 12 May 2025 14:52:02 -0700
Subject: [PATCH] net/mana: check vendor ID when probing RDMA device
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit be4ed96378811e572860cac558bff54b5c361992 ]

The RDMA kernel driver may expose two MANA RDMA devices, for RC and RAW
QP types. The purpose is to support fast service mode at SOC. Depending
on kernel version, the probe may fail if DPDK picks up the wrong device.

Add check for vendor_part_id and RAW QP capability when probing the MANA
device. This check is compatible with all kernel versions.

Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment")

Signed-off-by: Long Li <longli at microsoft.com>
---
 drivers/net/mana/mana.c | 14 ++++++++++++++
 drivers/net/mana/mana.h |  4 ++++
 2 files changed, 18 insertions(+)

diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c
index c0ff132fe1..ea164bc259 100644
--- a/drivers/net/mana/mana.c
+++ b/drivers/net/mana/mana.c
@@ -1486,6 +1486,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,
 			continue;
 		}
 
+		if (dev_attr.orig_attr.vendor_part_id) {
+			if (dev_attr.orig_attr.vendor_part_id !=
+			    GDMA_DEVICE_MANA) {
+				DRV_LOG(INFO, "Skip device vendor part id %x",
+					dev_attr.orig_attr.vendor_part_id);
+				continue;
+			}
+			if (!dev_attr.raw_packet_caps) {
+				DRV_LOG(INFO,
+					"Skip device without RAW support");
+				continue;
+			}
+		}
+
 		for (port = 1; port <= dev_attr.orig_attr.phys_port_cnt;
 		     port++) {
 			struct rte_ether_addr addr;
diff --git a/drivers/net/mana/mana.h b/drivers/net/mana/mana.h
index 7931a443a4..31b949ef33 100644
--- a/drivers/net/mana/mana.h
+++ b/drivers/net/mana/mana.h
@@ -12,6 +12,10 @@ struct mana_shared_data {
 	RTE_ATOMIC(uint32_t) secondary_cnt;
 };
 
+/* vendor_part_id returned from ibv_query_device */
+#define GDMA_DEVICE_MANA	2
+#define GDMA_DEVICE_MANA_IB	3
+
 #define MANA_MAX_MTU	9000
 #define MIN_RX_BUF_SIZE	1024
 #define MANA_MAX_MAC_ADDR 1
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-06-26 19:59:19.798058343 +0800
+++ 0051-net-mana-check-vendor-ID-when-probing-RDMA-device.patch	2025-06-26 19:59:17.414418043 +0800
@@ -1 +1 @@
-From be4ed96378811e572860cac558bff54b5c361992 Mon Sep 17 00:00:00 2001
+From 2e2c96c0385d790636c1adee23c938ac5ad01200 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit be4ed96378811e572860cac558bff54b5c361992 ]
@@ -14 +16,0 @@
-Cc: stable at dpdk.org
@@ -23 +25 @@
-index 2934da29f7..c42a987a30 100644
+index c0ff132fe1..ea164bc259 100644
@@ -26 +28 @@
-@@ -1490,6 +1490,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,
+@@ -1486,6 +1486,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,
@@ -48 +50 @@
-index 855d98911b..6309cae76b 100644
+index 7931a443a4..31b949ef33 100644


More information about the stable mailing list