DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH dpdk] mbuf: fix strict aliasing error in allocator
@ 2024-09-25 14:00 Robin Jarry
  2024-09-25 15:21 ` Morten Brørup
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Robin Jarry @ 2024-09-25 14:00 UTC (permalink / raw)
  To: dev

When building an application with -fstrict-aliasing -Wstrict-aliasing=2,
we get errors triggered by rte_mbuf_raw_alloc() which is called inline
from rte_pktmbuf_alloc().

 ../dpdk/lib/mbuf/rte_mbuf.h: In function ‘rte_mbuf_raw_alloc’:
 ../dpdk/lib/mbuf/rte_mbuf.h:600:42: error: dereferencing type-punned
 pointer might break strict-aliasing rules [-Werror=strict-aliasing]
   600 |         if (rte_mempool_get(mp, (void **)&m) < 0)
       |                                          ^~

Avoid incorrect casting by changing the type of the returned variable.

Signed-off-by: Robin Jarry <rjarry@redhat.com>
---
 lib/mbuf/rte_mbuf.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h
index babe16c72ccb..bab1fb94d41d 100644
--- a/lib/mbuf/rte_mbuf.h
+++ b/lib/mbuf/rte_mbuf.h
@@ -595,9 +595,9 @@ __rte_mbuf_raw_sanity_check(__rte_unused const struct rte_mbuf *m)
  */
 static inline struct rte_mbuf *rte_mbuf_raw_alloc(struct rte_mempool *mp)
 {
-	struct rte_mbuf *m;
+	void *m;
 
-	if (rte_mempool_get(mp, (void **)&m) < 0)
+	if (rte_mempool_get(mp, &m) < 0)
 		return NULL;
 	__rte_mbuf_raw_sanity_check(m);
 	return m;
-- 
2.46.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-09-26 16:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-25 14:00 [PATCH dpdk] mbuf: fix strict aliasing error in allocator Robin Jarry
2024-09-25 15:21 ` Morten Brørup
2024-09-25 15:23   ` Stephen Hemminger
2024-09-25 15:24     ` Robin Jarry
2024-09-25 15:40 ` [PATCH dpdk v2] " Robin Jarry
2024-09-25 15:47   ` Stephen Hemminger
2024-09-26 16:38 ` [PATCH dpdk] " Patrick Robb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).