__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>
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.
*
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.
*