[dpdk-dev] [PATCH v3] trace: fix compilation with C++

skori at marvell.com skori at marvell.com
Wed Aug 12 11:51:50 CEST 2020


From: Pawel Wodkowski <pawelwod at gmail.com>

trace_mem is declared as 'void *' which triggers following error:
'...invalid conversion from ‘void*’ to ‘__rte_trace_header*’
[-fpermissive]...'

Fix this by adding proper typecast to 'struct __rte_trace_header *'.

Fixes: ebaee6409702 ("trace: simplify trace point headers")

Signed-off-by: Pawel Wodkowski <pawelwod at gmail.com>
---
v3:
 - fix subject.
v2:
 - Update proper typecasting.

 lib/librte_eal/include/rte_trace_point.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/include/rte_trace_point.h b/lib/librte_eal/include/rte_trace_point.h
index b03960277..6446f2f0f 100644
--- a/lib/librte_eal/include/rte_trace_point.h
+++ b/lib/librte_eal/include/rte_trace_point.h
@@ -298,13 +298,14 @@ RTE_DECLARE_PER_LCORE(void *, trace_mem);
 static __rte_always_inline void *
 __rte_trace_mem_get(uint64_t in)
 {
-	struct __rte_trace_header *trace = RTE_PER_LCORE(trace_mem);
+	struct __rte_trace_header *trace =
+			(struct __rte_trace_header *)(RTE_PER_LCORE(trace_mem));
 	const uint16_t sz = in & __RTE_TRACE_FIELD_SIZE_MASK;
 
 	/* Trace memory is not initialized for this thread */
 	if (unlikely(trace == NULL)) {
 		__rte_trace_mem_per_thread_alloc();
-		trace = RTE_PER_LCORE(trace_mem);
+		trace = (struct __rte_trace_header *)(RTE_PER_LCORE(trace_mem));
 		if (unlikely(trace == NULL))
 			return NULL;
 	}
-- 
2.25.1



More information about the dev mailing list