iova, mz->len,
rte_mempool_memchunk_mz_free,
(void *)(uintptr_t)mz);
- else
- ret = rte_mempool_populate_virt(mp, mz->addr,
- mz->len, pg_sz,
+ else {
+ size_t tmp_len;
+
+ tmp_len = RTE_ALIGN_FLOOR(mz->len, pg_sz);
+ ret = rte_mempool_populate_virt(mp, mz->addr,
+ tmp_len, pg_sz,
rte_mempool_memchunk_mz_free,
(void *)(uintptr_t)mz);
+ }
if (ret < 0) {
rte_memzone_free(mz);
goto fail;