mempool: use sizeof to get size of header and trailer
authorOlivier Matz <olivier.matz@6wind.com>
Wed, 18 May 2016 11:04:25 +0000 (13:04 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 19 May 2016 12:40:12 +0000 (14:40 +0200)
Since commits d2e0ca22f and 97e7e685b the headers and trailers
of the mempool are defined as a structure. We can get their
size using a sizeof instead of doing a calculation that will
become wrong at the first structure update.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_mempool/rte_mempool.c

index 46a5d59..992edcd 100644 (file)
@@ -265,24 +265,13 @@ rte_mempool_calc_obj_size(uint32_t elt_size, uint32_t flags,
 
        sz = (sz != NULL) ? sz : &lsz;
 
-       /*
-        * In header, we have at least the pointer to the pool, and
-        * optionaly a 64 bits cookie.
-        */
-       sz->header_size = 0;
-       sz->header_size += sizeof(struct rte_mempool *); /* ptr to pool */
-#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
-       sz->header_size += sizeof(uint64_t); /* cookie */
-#endif
+       sz->header_size = sizeof(struct rte_mempool_objhdr);
        if ((flags & MEMPOOL_F_NO_CACHE_ALIGN) == 0)
                sz->header_size = RTE_ALIGN_CEIL(sz->header_size,
                        RTE_MEMPOOL_ALIGN);
 
-       /* trailer contains the cookie in debug mode */
-       sz->trailer_size = 0;
-#ifdef RTE_LIBRTE_MEMPOOL_DEBUG
-       sz->trailer_size += sizeof(uint64_t); /* cookie */
-#endif
+       sz->trailer_size = sizeof(struct rte_mempool_objtlr);
+
        /* element size is 8 bytes-aligned at least */
        sz->elt_size = RTE_ALIGN_CEIL(elt_size, sizeof(uint64_t));