[dpdk-dev,v2] mempool: fix local cache initialization
Commit Message
The mempool local cache was not initialized properly leading to
undefined behavior in cases where the allocated memory was used
previously and left with data.
Fixes: 213af31e0960 ("mempool: reduce structure size if no cache needed")
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
---
lib/librte_mempool/rte_mempool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 06/09/2016 10:19 AM, Sergio Gonzalez Monroy wrote:
> The mempool local cache was not initialized properly leading to
> undefined behavior in cases where the allocated memory was used
> previously and left with data.
>
> Fixes: 213af31e0960 ("mempool: reduce structure size if no cache needed")
>
> Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Thanks
2016-06-09 10:26, Olivier Matz:
> On 06/09/2016 10:19 AM, Sergio Gonzalez Monroy wrote:
> > The mempool local cache was not initialized properly leading to
> > undefined behavior in cases where the allocated memory was used
> > previously and left with data.
> >
> > Fixes: 213af31e0960 ("mempool: reduce structure size if no cache needed")
> >
> > Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
>
> Acked-by: Olivier Matz <olivier.matz@6wind.com>
>
> Thanks
Applied, thanks
@@ -787,7 +787,7 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
/* init the mempool structure */
mp = mz->addr;
- memset(mp, 0, sizeof(*mp));
+ memset(mp, 0, MEMPOOL_HEADER_SIZE(mp, cache_size));
ret = snprintf(mp->name, sizeof(mp->name), "%s", name);
if (ret < 0 || ret >= (int)sizeof(mp->name)) {
rte_errno = ENAMETOOLONG;