patch 'examples/bond: fix invalid use of trylock' has been queued to stable release 20.11.6

Xueming Li xuemingl at nvidia.com
Tue Jun 21 10:01:11 CEST 2022


Hi,

FYI, your patch has been queued to stable release 20.11.6

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/23/22. 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/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/faca6823330d436338bd7e3a8b0a79d32ca23d5c

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From faca6823330d436338bd7e3a8b0a79d32ca23d5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20R=C3=B6nnblom?= <mattias.ronnblom at ericsson.com>
Date: Mon, 11 Apr 2022 17:15:59 +0200
Subject: [PATCH] examples/bond: fix invalid use of trylock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit 03382cf4115019e6a82d6fca51a16a34a0824a90 ]

The conditional rte_spinlock_trylock() was used as if it is an
unconditional lock operation in a number of places.

Fixes: cc7e8ae84faa ("examples/bond: add example application for link bonding mode 6")

Signed-off-by: Mattias Rönnblom <mattias.ronnblom at ericsson.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Min Hu (Connor) <humin29 at huawei.com>
Acked-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
---
 examples/bond/main.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/examples/bond/main.c b/examples/bond/main.c
index a6763bce47..43d5df83ae 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -376,7 +376,7 @@ static int lcore_main(__rte_unused void *arg1)
 	bond_ip = BOND_IP_1 | (BOND_IP_2 << 8) |
 				(BOND_IP_3 << 16) | (BOND_IP_4 << 24);
 
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 
 	while (global_flag_stru_p->LcoreMainIsRunning) {
 		rte_spinlock_unlock(&global_flag_stru_p->lock);
@@ -457,7 +457,7 @@ static int lcore_main(__rte_unused void *arg1)
 			if (is_free == 0)
 				rte_pktmbuf_free(pkts[i]);
 		}
-		rte_spinlock_trylock(&global_flag_stru_p->lock);
+		rte_spinlock_lock(&global_flag_stru_p->lock);
 	}
 	rte_spinlock_unlock(&global_flag_stru_p->lock);
 	printf("BYE lcore_main\n");
@@ -572,7 +572,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
 {
 	int worker_core_id = rte_lcore_id();
 
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 	if (global_flag_stru_p->LcoreMainIsRunning == 0) {
 		if (rte_eal_get_lcore_state(global_flag_stru_p->LcoreMainCore)
 		    != WAIT) {
@@ -592,7 +592,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
 	if ((worker_core_id >= RTE_MAX_LCORE) || (worker_core_id == 0))
 		return;
 
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 	global_flag_stru_p->LcoreMainIsRunning = 1;
 	rte_spinlock_unlock(&global_flag_stru_p->lock);
 	cmdline_printf(cl,
@@ -660,7 +660,7 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
 			    struct cmdline *cl,
 			    __rte_unused void *data)
 {
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 	if (global_flag_stru_p->LcoreMainIsRunning == 0)	{
 		cmdline_printf(cl,
 					"lcore_main not running on core:%d\n",
@@ -701,7 +701,7 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
 			    struct cmdline *cl,
 			    __rte_unused void *data)
 {
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 	if (global_flag_stru_p->LcoreMainIsRunning == 0)	{
 		cmdline_printf(cl,
 					"lcore_main not running on core:%d\n",
@@ -763,7 +763,7 @@ static void cmd_show_parsed(__rte_unused void *parsed_result,
 		printf("\n");
 	}
 
-	rte_spinlock_trylock(&global_flag_stru_p->lock);
+	rte_spinlock_lock(&global_flag_stru_p->lock);
 	cmdline_printf(cl,
 			"Active_slaves:%d "
 			"packets received:Tot:%d Arp:%d IPv4:%d\n",
-- 
2.35.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-06-21 15:37:49.529792596 +0800
+++ 0005-examples-bond-fix-invalid-use-of-trylock.patch	2022-06-21 15:37:48.954450956 +0800
@@ -1 +1 @@
-From 03382cf4115019e6a82d6fca51a16a34a0824a90 Mon Sep 17 00:00:00 2001
+From faca6823330d436338bd7e3a8b0a79d32ca23d5c Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 03382cf4115019e6a82d6fca51a16a34a0824a90 ]
@@ -13 +15,0 @@
-Cc: stable at dpdk.org
@@ -24 +26 @@
-index 335bde5c8d..4efebb3902 100644
+index a6763bce47..43d5df83ae 100644
@@ -27 +29 @@
-@@ -373,7 +373,7 @@ static int lcore_main(__rte_unused void *arg1)
+@@ -376,7 +376,7 @@ static int lcore_main(__rte_unused void *arg1)
@@ -36 +38 @@
-@@ -456,7 +456,7 @@ static int lcore_main(__rte_unused void *arg1)
+@@ -457,7 +457,7 @@ static int lcore_main(__rte_unused void *arg1)
@@ -45 +47 @@
-@@ -571,7 +571,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
+@@ -572,7 +572,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
@@ -54 +56 @@
-@@ -591,7 +591,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
+@@ -592,7 +592,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
@@ -63 +65 @@
-@@ -659,7 +659,7 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
+@@ -660,7 +660,7 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
@@ -72 +74 @@
-@@ -700,7 +700,7 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
+@@ -701,7 +701,7 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
@@ -81 +83 @@
-@@ -762,7 +762,7 @@ static void cmd_show_parsed(__rte_unused void *parsed_result,
+@@ -763,7 +763,7 @@ static void cmd_show_parsed(__rte_unused void *parsed_result,


More information about the stable mailing list