patch 'net/bnxt: fix mutexes for multi-process' has been queued to stable release 25.11.3
Kevin Traynor
ktraynor at redhat.com
Thu Jul 23 19:14:48 CEST 2026
Hi,
FYI, your patch has been queued to stable release 25.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/27/26. 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/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/bc57b898c3fd7e5048719bdc392129382555698a
Thanks.
Kevin
---
>From bc57b898c3fd7e5048719bdc392129382555698a Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Wed, 29 Apr 2026 11:46:43 -0700
Subject: [PATCH] net/bnxt: fix mutexes for multi-process
[ upstream commit 5b209eb21a98ce8d396d9fc58ee4710ce94778be ]
The BNXT driver supports secondary processes. Several mutexes live in
structures allocated in shared memory (dev_private and rte_zmalloc'd
structures) and must be initialized with PTHREAD_PROCESS_SHARED:
- flow_lock, def_cp_lock, health_check_lock, err_recovery_lock
in struct bnxt
- vfr_start_lock in rep_info
- txq_lock in struct bnxt_tx_queue
- bnxt_ulp_mutex in session state
- flow_db_lock in cfg_data
Bugzilla ID: 662
Fixes: 1cb3d39a48f7 ("net/bnxt: synchronize between flow related functions")
Fixes: 5526c8025d4d ("net/bnxt: fix race between interrupt handler and dev config")
Fixes: b59e4be2b6a7 ("net/bnxt: fix VF representor port add")
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev at huawei.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 11 ++++++-----
drivers/net/bnxt/bnxt_txq.c | 3 ++-
drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 2 +-
drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c | 2 +-
drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c | 2 +-
5 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 6601ddf575..6b77184bc7 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -5868,8 +5868,8 @@ static int
bnxt_init_locks(struct bnxt *bp)
{
- pthread_mutex_init(&bp->flow_lock, NULL);
- pthread_mutex_init(&bp->def_cp_lock, NULL);
- pthread_mutex_init(&bp->health_check_lock, NULL);
- pthread_mutex_init(&bp->err_recovery_lock, NULL);
+ rte_thread_mutex_init_shared(&bp->flow_lock);
+ rte_thread_mutex_init_shared(&bp->def_cp_lock);
+ rte_thread_mutex_init_shared(&bp->health_check_lock);
+ rte_thread_mutex_init_shared(&bp->err_recovery_lock);
return 0;
@@ -6889,5 +6889,6 @@ static int bnxt_init_rep_info(struct bnxt *bp)
bp->cfa_code_map[i] = BNXT_VF_IDX_INVALID;
- return pthread_mutex_init(&bp->rep_info->vfr_start_lock, NULL);
+ rte_thread_mutex_init_shared(&bp->rep_info->vfr_start_lock);
+ return 0;
}
diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c
index 3938ebc709..deb367dabc 100644
--- a/drivers/net/bnxt/bnxt_txq.c
+++ b/drivers/net/bnxt/bnxt_txq.c
@@ -199,5 +199,6 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
}
- return pthread_mutex_init(&txq->txq_lock, NULL);
+ rte_thread_mutex_init_shared(&txq->txq_lock);
+ return 0;
err:
bnxt_tx_queue_release_op(eth_dev, queue_idx);
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
index 0c03ae7a83..c28cf4f2b5 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
@@ -215,5 +215,5 @@ ulp_session_init(struct bnxt *bp,
session->pci_info.bus = pci_addr->bus;
memcpy(session->dsn, bp->dsn, sizeof(session->dsn));
- pthread_mutex_init(&session->bnxt_ulp_mutex, NULL);
+ rte_thread_mutex_init_shared(&session->bnxt_ulp_mutex);
STAILQ_INSERT_TAIL(&bnxt_ulp_session_list,
session, next);
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
index bc347de202..6ca9d3309b 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
@@ -1470,5 +1470,5 @@ ulp_tf_init(struct bnxt *bp,
}
- pthread_mutex_init(&bp->ulp_ctx->cfg_data->flow_db_lock, NULL);
+ rte_thread_mutex_init_shared(&bp->ulp_ctx->cfg_data->flow_db_lock);
/* Initialize ulp dparms with values devargs passed */
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
index ad44ec93ca..fa98b2bca9 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
@@ -1039,5 +1039,5 @@ ulp_tfc_init(struct bnxt *bp,
}
- pthread_mutex_init(&bp->ulp_ctx->cfg_data->flow_db_lock, NULL);
+ rte_thread_mutex_init_shared(&bp->ulp_ctx->cfg_data->flow_db_lock);
rc = ulp_tfc_dparms_init(bp, bp->ulp_ctx, ulp_dev_id);
--
2.55.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-07-23 17:57:59.412118279 +0100
+++ 0025-net-bnxt-fix-mutexes-for-multi-process.patch 2026-07-23 17:57:58.639918627 +0100
@@ -1 +1 @@
-From 5b209eb21a98ce8d396d9fc58ee4710ce94778be Mon Sep 17 00:00:00 2001
+From bc57b898c3fd7e5048719bdc392129382555698a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5b209eb21a98ce8d396d9fc58ee4710ce94778be ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -34 +35 @@
-index b677f9491d..4c5c042ed8 100644
+index 6601ddf575..6b77184bc7 100644
@@ -37 +38 @@
-@@ -5900,8 +5900,8 @@ static int
+@@ -5868,8 +5868,8 @@ static int
@@ -50 +51 @@
-@@ -6921,5 +6921,6 @@ static int bnxt_init_rep_info(struct bnxt *bp)
+@@ -6889,5 +6889,6 @@ static int bnxt_init_rep_info(struct bnxt *bp)
@@ -59 +60 @@
-index 7752f06eb7..03407c556a 100644
+index 3938ebc709..deb367dabc 100644
@@ -62 +63 @@
-@@ -205,5 +205,6 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
+@@ -199,5 +199,6 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
More information about the stable
mailing list