aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_pool.c
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2020-02-04 08:16:11 +0000
committerMatias Elo <matias.elo@nokia.com>2020-02-04 08:16:11 +0000
commit4633a4fc7fd2237192d8cc601ab7e7d18e4fb96a (patch)
tree23967a1d12e1cccd5f2e88e5925c146c4d8bdacd /platform/linux-generic/odp_pool.c
parentd25d47b3c5b1dcde440960c259d5066c2dec0a2d (diff)
parent180f1403b12beab32715f10839d3248e7fecb46d (diff)
Merge branch 'master' of https://github.com/OpenDataPlane/odp into odp-dpdk
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'platform/linux-generic/odp_pool.c')
-rw-r--r--platform/linux-generic/odp_pool.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index 5d5217aaf..e1964f840 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -503,6 +503,15 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params,
align = 0;
if (params->type == ODP_POOL_PACKET) {
+ uint32_t align_req = params->pkt.align;
+
+ if (align_req &&
+ (!CHECK_IS_POWER2(align_req) ||
+ align_req > _odp_pool_glb->config.pkt_base_align)) {
+ ODP_ERR("Bad align requirement\n");
+ return ODP_POOL_INVALID;
+ }
+
align = _odp_pool_glb->config.pkt_base_align;
} else {
if (params->type == ODP_POOL_BUFFER)
@@ -1106,6 +1115,7 @@ int odp_pool_capability(odp_pool_capability_t *capa)
capa->pkt.max_pools = max_pools;
capa->pkt.max_len = CONFIG_PACKET_MAX_LEN;
capa->pkt.max_num = _odp_pool_glb->config.pkt_max_num;
+ capa->pkt.max_align = _odp_pool_glb->config.pkt_base_align;
capa->pkt.min_headroom = CONFIG_PACKET_HEADROOM;
capa->pkt.max_headroom = CONFIG_PACKET_HEADROOM;
capa->pkt.min_tailroom = CONFIG_PACKET_TAILROOM;