mempool/dpaa: fix address translation optimization
authorHemant Agrawal <hemant.agrawal@nxp.com>
Tue, 23 Jan 2018 12:27:03 +0000 (17:57 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 31 Jan 2018 12:44:44 +0000 (13:44 +0100)
Fixes: 83a4f267f2e3 ("mempool/dpaa: optimize phy to virt conversion")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
drivers/mempool/dpaa/dpaa_mempool.c
drivers/mempool/dpaa/dpaa_mempool.h

index dc4bcc9..c880d4f 100644 (file)
@@ -150,8 +150,8 @@ dpaa_mbuf_free_bulk(struct rte_mempool *pool,
                uint64_t phy = rte_mempool_virt2iova(obj_table[i]);
 
                if (unlikely(!bp_info->ptov_off)) {
-                       /* buffers are not from multiple memzones */
-                       if (!(bp_info->flags & DPAA_MPOOL_MULTI_MEMZONE)) {
+                       /* buffers are from single mem segment */
+                       if (bp_info->flags & DPAA_MPOOL_SINGLE_SEGMENT) {
                                bp_info->ptov_off
                                                = (uint64_t)obj_table[i] - phy;
                                rte_dpaa_bpid_info[bp_info->bpid].ptov_off
@@ -282,9 +282,8 @@ dpaa_register_memory_area(const struct rte_mempool *mp,
                           len, total_elt_sz * mp->size);
 
        /* Detect pool area has sufficient space for elements in this memzone */
-       if (len < total_elt_sz * mp->size)
-               /* Else, Memory will be allocated from multiple memzones */
-               bp_info->flags |= DPAA_MPOOL_MULTI_MEMZONE;
+       if (len >= total_elt_sz * mp->size)
+               bp_info->flags |= DPAA_MPOOL_SINGLE_SEGMENT;
 
        return 0;
 }
index 02aa513..9435dd2 100644 (file)
@@ -28,8 +28,8 @@
 /* Maximum release/acquire from BMAN */
 #define DPAA_MBUF_MAX_ACQ_REL  8
 
-/* Buffers are allocated from multiple memzones i.e. non phys contiguous */
-#define DPAA_MPOOL_MULTI_MEMZONE  0x01
+/* Buffers are allocated from single mem segment i.e. phys contiguous */
+#define DPAA_MPOOL_SINGLE_SEGMENT  0x01
 
 struct dpaa_bp_info {
        struct rte_mempool *mp;