mempool: remove check for bad IOVA when populating
authorAnatoly Burakov <anatoly.burakov@intel.com>
Thu, 14 Nov 2019 13:58:21 +0000 (13:58 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Tue, 19 Nov 2019 20:41:43 +0000 (21:41 +0100)
Currently, mempool will check if IOVA is bad for a segment, and reject
the IOVA if hugepages are also enabled. This check is wrong because now
that we have external memory segments, they are allowed to have their
IOVA's to be invalid. This check also doesn't make much sense in the
first place, because the following code can handle bad IOVA's perfectly
well (and in fact, this check is not triggering a failure when
--no-huge option is enabled), so there is not much sense to check for
this in the first place.

Fixes: 950e8fb4e194 ("mem: allow registering external memory areas")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Bo Chen <box.c.chen@intel.com>
lib/librte_mempool/rte_mempool.c

index 8da2e47..78d8eb9 100644 (file)
@@ -390,11 +390,6 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr,
 
                iova = get_iova(addr + off);
 
-               if (iova == RTE_BAD_IOVA && rte_eal_has_hugepages()) {
-                       ret = -EINVAL;
-                       goto fail;
-               }
-
                /* populate with the largest group of contiguous pages */
                for (phys_len = RTE_MIN(
                        (size_t)(RTE_PTR_ALIGN_CEIL(addr + off + 1, pg_sz) -