diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h index babe16c72c..0d2e0e64b3 100644 --- a/lib/mbuf/rte_mbuf.h +++ b/lib/mbuf/rte_mbuf.h @@ -595,12 +595,15 @@ __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; + union { + void *ptr; + struct rte_mbuf *m; + } ret; - if (rte_mempool_get(mp, (void **)&m) < 0) + if (rte_mempool_get(mp, &ret.ptr) < 0) return NULL; - __rte_mbuf_raw_sanity_check(m); - return m; + __rte_mbuf_raw_sanity_check(ret.m); + return ret.m; } /**