mempool: fix trailer address
authorYuichi Nakai <xoxyuxu@gmail.com>
Wed, 22 Jul 2015 13:57:00 +0000 (22:57 +0900)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 26 Jul 2015 13:24:18 +0000 (15:24 +0200)
__mempool_get_trailer() calculated header's address.
The address of trailer should set after element area.
This patch fixes this calculating.

Fixes: 97e7e685bfcd ("mempool: add structure for object trailers")

Signed-off-by: Yuichi Nakai <xoxyuxu@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_mempool/rte_mempool.h

index ee67ce7..075bcdf 100644 (file)
@@ -271,12 +271,6 @@ static inline struct rte_mempool_objhdr *__mempool_get_header(void *obj)
        return RTE_PTR_SUB(obj, sizeof(struct rte_mempool_objhdr));
 }
 
-/* return the trailer of a mempool object (internal) */
-static inline struct rte_mempool_objtlr *__mempool_get_trailer(void *obj)
-{
-       return RTE_PTR_SUB(obj, sizeof(struct rte_mempool_objtlr));
-}
-
 /**
  * Return a pointer to the mempool owning this object.
  *
@@ -292,6 +286,13 @@ static inline struct rte_mempool *rte_mempool_from_obj(void *obj)
        return hdr->mp;
 }
 
+/* return the trailer of a mempool object (internal) */
+static inline struct rte_mempool_objtlr *__mempool_get_trailer(void *obj)
+{
+       struct rte_mempool *mp = rte_mempool_from_obj(obj);
+       return RTE_PTR_ADD(obj, mp->elt_size);
+}
+
 /**
  * @internal Check and update cookies or panic.
  *