summaryrefslogtreecommitdiff
path: root/lib/librte_mbuf
diff options
context:
space:
mode:
authorDavid Marchand <david.marchand@6wind.com>2018-05-16 13:10:40 +0200
committerThomas Monjalon <thomas@monjalon.net>2018-05-18 13:20:49 +0200
commita2ff2827dc84b3acbb2270c49b4b0a82a09712cb (patch)
tree40f85e2e0d986c651a64e447d673a834ce4d7948 /lib/librte_mbuf
parent1613848c2cd109d525d60cb6e84c9b893ef0ccce (diff)
downloaddpdk-a2ff2827dc84b3acbb2270c49b4b0a82a09712cb.zip
dpdk-a2ff2827dc84b3acbb2270c49b4b0a82a09712cb.tar.gz
dpdk-a2ff2827dc84b3acbb2270c49b4b0a82a09712cb.tar.xz
mbuf: fix C++ build on void pointer cast
Including rte_mbuf.h in C++ triggers the following warning as C++ does not allow implicit casting of a void *. In file included from test.cpp:1:0: rte_mbuf.h: In function ‘rte_mbuf_ext_shared_info* rte_pktmbuf_ext_shinfo_init_helper(void*, uint16_t*, rte_mbuf_extbuf_free_callback_t, void*)’: rte_mbuf.h:1349:9: error: invalid conversion from ‘void*’ to ‘rte_mbuf_ext_shared_info*’ [-fpermissive] shinfo = RTE_PTR_ALIGN_FLOOR(RTE_PTR_SUB(buf_end, ^ Fixes: a53aa2b9f3be ("mbuf: support attaching external buffer") Signed-off-by: David Marchand <david.marchand@6wind.com>
Diffstat (limited to 'lib/librte_mbuf')
-rw-r--r--lib/librte_mbuf/rte_mbuf.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 4fd9a0d..eab13c6 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1345,12 +1345,14 @@ rte_pktmbuf_ext_shinfo_init_helper(void *buf_addr, uint16_t *buf_len,
{
struct rte_mbuf_ext_shared_info *shinfo;
void *buf_end = RTE_PTR_ADD(buf_addr, *buf_len);
+ void *addr;
- shinfo = RTE_PTR_ALIGN_FLOOR(RTE_PTR_SUB(buf_end,
- sizeof(*shinfo)), sizeof(uintptr_t));
- if ((void *)shinfo <= buf_addr)
+ addr = RTE_PTR_ALIGN_FLOOR(RTE_PTR_SUB(buf_end, sizeof(*shinfo)),
+ sizeof(uintptr_t));
+ if (addr <= buf_addr)
return NULL;
+ shinfo = (struct rte_mbuf_ext_shared_info *)addr;
shinfo->free_cb = free_cb;
shinfo->fcb_opaque = fcb_opaque;
rte_mbuf_ext_refcnt_set(shinfo, 1);