patch 'pdump: do not allow enable/disable in primary process' has been queued to stable release 19.11.14

christian.ehrhardt at canonical.com christian.ehrhardt at canonical.com
Fri Nov 11 12:38:53 CET 2022


Hi,

FYI, your patch has been queued to stable release 19.11.14

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/18/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/74e2561970b8586d4c1354b7b850b195c50eb2f6

Thanks.

Christian Ehrhardt <christian.ehrhardt at canonical.com>

---
>From 74e2561970b8586d4c1354b7b850b195c50eb2f6 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Wed, 19 Oct 2022 09:37:33 -0700
Subject: [PATCH] pdump: do not allow enable/disable in primary process
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 8a0cf0c455dcfff2e7cc6b76d4b3674a9c11521f ]

Attempts to enable or disable pdump in primary process
will fail with core dump because it is not valid to call
rte_mp_request_sync() unless in a secondary process.

Trap the error in the common code used for both enable
and disable requests.

Fixes: 660098d61f57 ("pdump: use generic multi-process channel")

Reported-by: Sylvia Grundwürmer <sylvia.grundwuermer at b-plus.com>
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 lib/librte_pdump/rte_pdump.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c
index ac94fea936..3421d180a5 100644
--- a/lib/librte_pdump/rte_pdump.c
+++ b/lib/librte_pdump/rte_pdump.c
@@ -507,6 +507,12 @@ pdump_prepare_client_request(char *device, uint16_t queue,
 	struct pdump_request *req = (struct pdump_request *)mp_req.param;
 	struct pdump_response *resp;
 
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		RTE_LOG(ERR, PDUMP,
+			"pdump enable/disable not allowed in primary process\n");
+		return -EINVAL;
+	}
+
 	req->ver = 1;
 	req->flags = flags;
 	req->op = operation;
-- 
2.38.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-11-11 12:35:06.052538630 +0100
+++ 0036-pdump-do-not-allow-enable-disable-in-primary-process.patch	2022-11-11 12:35:04.793192173 +0100
@@ -1 +1 @@
-From 8a0cf0c455dcfff2e7cc6b76d4b3674a9c11521f Mon Sep 17 00:00:00 2001
+From 74e2561970b8586d4c1354b7b850b195c50eb2f6 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 8a0cf0c455dcfff2e7cc6b76d4b3674a9c11521f ]
+
@@ -17 +18,0 @@
-Cc: stable at dpdk.org
@@ -22 +23 @@
- lib/pdump/rte_pdump.c | 6 ++++++
+ lib/librte_pdump/rte_pdump.c | 6 ++++++
@@ -25,5 +26,5 @@
-diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c
-index 98dcbc037b..a81544cb57 100644
---- a/lib/pdump/rte_pdump.c
-+++ b/lib/pdump/rte_pdump.c
-@@ -537,6 +537,12 @@ pdump_prepare_client_request(const char *device, uint16_t queue,
+diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c
+index ac94fea936..3421d180a5 100644
+--- a/lib/librte_pdump/rte_pdump.c
++++ b/lib/librte_pdump/rte_pdump.c
+@@ -507,6 +507,12 @@ pdump_prepare_client_request(char *device, uint16_t queue,
@@ -34,2 +35,2 @@
-+		PDUMP_LOG(ERR,
-+			  "pdump enable/disable not allowed in primary process\n");
++		RTE_LOG(ERR, PDUMP,
++			"pdump enable/disable not allowed in primary process\n");
@@ -39,3 +40,3 @@
- 	memset(req, 0, sizeof(*req));
- 
- 	req->ver = (flags & RTE_PDUMP_FLAG_PCAPNG) ? V2 : V1;
+ 	req->ver = 1;
+ 	req->flags = flags;
+ 	req->op = operation;


More information about the stable mailing list