aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2022-04-26 08:37:43 +0300
committerMatias Elo <matias.elo@nokia.com>2022-04-26 16:53:39 +0300
commit114b13e0145548c7b6264060c3c4ea7e7cfa40e0 (patch)
tree4a84eb9a962dafb174c8b273d8b2f465f55a93c6 /platform/linux-dpdk
parentbedd54982b3f8bbe92a09c638c47d46239cdcd81 (diff)
linux-dpdk: pool: improve odp_pool_create() parameter checking
Check that the number of objects in the pool is not zero in odp_pool_param_t. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Diffstat (limited to 'platform/linux-dpdk')
-rw-r--r--platform/linux-dpdk/odp_pool.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/platform/linux-dpdk/odp_pool.c b/platform/linux-dpdk/odp_pool.c
index dfe7c1737..3dd79f17b 100644
--- a/platform/linux-dpdk/odp_pool.c
+++ b/platform/linux-dpdk/odp_pool.c
@@ -400,6 +400,11 @@ static int check_params(const odp_pool_param_t *params)
switch (params->type) {
case ODP_POOL_BUFFER:
+ if (params->buf.num == 0) {
+ ODP_ERR("buf.num zero\n");
+ return -1;
+ }
+
if (params->buf.num > capa.buf.max_num) {
ODP_ERR("buf.num too large %u\n", params->buf.num);
return -1;
@@ -444,6 +449,11 @@ static int check_params(const odp_pool_param_t *params)
return -1;
}
+ if (params->pkt.num == 0) {
+ ODP_ERR("pkt.num zero\n");
+ return -1;
+ }
+
if (params->pkt.num > capa.pkt.max_num) {
ODP_ERR("pkt.num too large %u\n", params->pkt.num);
return -1;
@@ -455,11 +465,6 @@ static int check_params(const odp_pool_param_t *params)
return -1;
}
- if (params->pkt.num > capa.pkt.max_num) {
- ODP_ERR("pkt.num too large %u\n", params->pkt.num);
- return -1;
- }
-
if (params->pkt.seg_len > capa.pkt.max_seg_len) {
ODP_ERR("pkt.seg_len too large %u\n",
params->pkt.seg_len);
@@ -492,6 +497,11 @@ static int check_params(const odp_pool_param_t *params)
break;
case ODP_POOL_TIMEOUT:
+ if (params->tmo.num == 0) {
+ ODP_ERR("tmo.num zero\n");
+ return -1;
+ }
+
if (params->tmo.num > capa.tmo.max_num) {
ODP_ERR("tmo.num too large %u\n", params->tmo.num);
return -1;