git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
timer: fix pointer to local outside scope
[dpdk.git]
/
drivers
/
mempool
/
dpaa
/
dpaa_mempool.c
diff --git
a/drivers/mempool/dpaa/dpaa_mempool.c
b/drivers/mempool/dpaa/dpaa_mempool.c
index
1c12122
..
0030817
100644
(file)
--- a/
drivers/mempool/dpaa/dpaa_mempool.c
+++ b/
drivers/mempool/dpaa/dpaa_mempool.c
@@
-26,6
+26,7
@@
#include <rte_ring.h>
#include <dpaa_mempool.h>
#include <rte_ring.h>
#include <dpaa_mempool.h>
+#include <dpaax_iova_table.h>
/* List of all the memseg information locally maintained in dpaa driver. This
* is to optimize the PA_to_VA searches until a better mechanism (algo) is
/* List of all the memseg information locally maintained in dpaa driver. This
* is to optimize the PA_to_VA searches until a better mechanism (algo) is
@@
-34,7
+35,7
@@
struct dpaa_memseg_list rte_dpaa_memsegs
= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
struct dpaa_memseg_list rte_dpaa_memsegs
= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
-struct dpaa_bp_info
rte_dpaa_bpid_info[DPAA_MAX_BPOOLS]
;
+struct dpaa_bp_info
*rte_dpaa_bpid_info
;
static int
dpaa_mbuf_create_pool(struct rte_mempool *mp)
static int
dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@
-73,6
+74,14
@@
dpaa_mbuf_create_pool(struct rte_mempool *mp)
DPAA_MEMPOOL_WARN("drained %u bufs from BPID %d",
num_bufs, bpid);
DPAA_MEMPOOL_WARN("drained %u bufs from BPID %d",
num_bufs, bpid);
+ if (rte_dpaa_bpid_info == NULL) {
+ rte_dpaa_bpid_info = (struct dpaa_bp_info *)rte_zmalloc(NULL,
+ sizeof(struct dpaa_bp_info) * DPAA_MAX_BPOOLS,
+ RTE_CACHE_LINE_SIZE);
+ if (rte_dpaa_bpid_info == NULL)
+ return -ENOMEM;
+ }
+
rte_dpaa_bpid_info[bpid].mp = mp;
rte_dpaa_bpid_info[bpid].bpid = bpid;
rte_dpaa_bpid_info[bpid].size = mp->elt_size;
rte_dpaa_bpid_info[bpid].mp = mp;
rte_dpaa_bpid_info[bpid].bpid = bpid;
rte_dpaa_bpid_info[bpid].size = mp->elt_size;
@@
-285,6
+294,9
@@
dpaa_populate(struct rte_mempool *mp, unsigned int max_objs,
return 0;
}
return 0;
}
+ /* Update the PA-VA Table */
+ dpaax_iova_table_update(paddr, vaddr, len);
+
bp_info = DPAA_MEMPOOL_TO_POOL_INFO(mp);
total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size;
bp_info = DPAA_MEMPOOL_TO_POOL_INFO(mp);
total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size;
@@
-324,7
+336,7
@@
dpaa_populate(struct rte_mempool *mp, unsigned int max_objs,
obj_cb, obj_cb_arg);
}
obj_cb, obj_cb_arg);
}
-struct rte_mempool_ops dpaa_mpool_ops = {
+st
atic const st
ruct rte_mempool_ops dpaa_mpool_ops = {
.name = DPAA_MEMPOOL_OPS_NAME,
.alloc = dpaa_mbuf_create_pool,
.free = dpaa_mbuf_free_pool,
.name = DPAA_MEMPOOL_OPS_NAME,
.alloc = dpaa_mbuf_create_pool,
.free = dpaa_mbuf_free_pool,