[PATCH] pdump: do not allow enable/disable in primary process

Stephen Hemminger stephen at networkplumber.org
Wed Oct 19 18:37:33 CEST 2022


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.

Reported-by: Sylvia Grundwürmer <sylvia.grundwuermer at b-plus.com>
Fixes: 660098d61f57 ("pdump: use generic multi-process channel")
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 lib/pdump/rte_pdump.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c
index 98dcbc037bb8..a81544cb5772 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,
 	struct pdump_request *req = (struct pdump_request *)mp_req.param;
 	struct pdump_response *resp;
 
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		PDUMP_LOG(ERR,
+			  "pdump enable/disable not allowed in primary process\n");
+		return -EINVAL;
+	}
+
 	memset(req, 0, sizeof(*req));
 
 	req->ver = (flags & RTE_PDUMP_FLAG_PCAPNG) ? V2 : V1;
-- 
2.35.1



More information about the dev mailing list