aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk
diff options
context:
space:
mode:
authorZoltan Kiss <zoltan.kiss@linaro.org>2015-12-15 19:11:22 +0000
committerZoltan Kiss <zoltan.kiss@linaro.org>2015-12-18 17:02:08 +0000
commitcd7e8754a547d6d165b74d5258ce6b4dd60e653d (patch)
treed84041254b61d4c12739dc001490f987ef06fa9e /platform/linux-dpdk
parente886513b57fca4c00f4c8774cc93efb8d99b5101 (diff)
linux-dpdk: pool: check returned number of workers
Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Diffstat (limited to 'platform/linux-dpdk')
-rw-r--r--platform/linux-dpdk/odp_pool.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/platform/linux-dpdk/odp_pool.c b/platform/linux-dpdk/odp_pool.c
index 2640c6ea5..98c83d395 100644
--- a/platform/linux-dpdk/odp_pool.c
+++ b/platform/linux-dpdk/odp_pool.c
@@ -325,7 +325,13 @@ odp_pool_t odp_pool_create(const char *name, odp_pool_param_t *params)
int num_workers =
odp_cpumask_default_worker(&dummy_mask, 0);
- cache_overhead = cache_size * 1.5 * (num_workers - 1);
+ if (num_workers < 0)
+ ODP_ABORT("Worker number fail! %d\n",
+ num_workers);
+ if (num_workers)
+ num_workers -= 1;
+
+ cache_overhead = cache_size * 1.5 * num_workers;
if (num + cache_overhead < num)
num = UINT32_MAX;
else