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

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Jun 12 23:06:59 CEST 2025


Hi,

FYI, your patch has been queued to stable release 22.11.9

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/14/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://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/f3f71fde2d06d028bc41f3a70a958a79a3c19fe5

Thanks.

Luca Boccassi

---
>From f3f71fde2d06d028bc41f3a70a958a79a3c19fe5 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

[ 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 57325eb528..3412ad586b 100644
--- a/drivers/net/mana/mana.c
+++ b/drivers/net/mana/mana.c
@@ -1393,6 +1393,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 579e6063ab..ffeef6e533 100644
--- a/drivers/net/mana/mana.h
+++ b/drivers/net/mana/mana.h
@@ -12,6 +12,10 @@ struct mana_shared_data {
 	rte_atomic32_t secondary_cnt;
 };
 
+/* vendor_part_id returned from ibv_query_device */
+#define GDMA_DEVICE_MANA	2
+#define GDMA_DEVICE_MANA_IB	3
+
 #define MIN_RX_BUF_SIZE	1024
 #define MAX_FRAME_SIZE	RTE_ETHER_MAX_LEN
 #define MANA_MAX_MAC_ADDR 1
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-06-12 22:06:25.437754411 +0100
+++ 0042-net-mana-check-vendor-ID-when-probing-RDMA-device.patch	2025-06-12 22:06:23.870044637 +0100
@@ -1 +1 @@
-From be4ed96378811e572860cac558bff54b5c361992 Mon Sep 17 00:00:00 2001
+From f3f71fde2d06d028bc41f3a70a958a79a3c19fe5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit be4ed96378811e572860cac558bff54b5c361992 ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index 2934da29f7..c42a987a30 100644
+index 57325eb528..3412ad586b 100644
@@ -26 +27 @@
-@@ -1490,6 +1490,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,
+@@ -1393,6 +1393,20 @@ mana_pci_probe_mac(struct rte_pci_device *pci_dev,
@@ -48 +49 @@
-index 855d98911b..6309cae76b 100644
+index 579e6063ab..ffeef6e533 100644
@@ -52 +53 @@
- 	RTE_ATOMIC(uint32_t) secondary_cnt;
+ 	rte_atomic32_t secondary_cnt;
@@ -59 +59,0 @@
- #define MANA_MAX_MTU	9000
@@ -60,0 +61 @@
+ #define MAX_FRAME_SIZE	RTE_ETHER_MAX_LEN


More information about the stable mailing list