diff options
Diffstat (limited to 'platform/linux-dpdk/odp_timer.c')
-rw-r--r-- | platform/linux-dpdk/odp_timer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/platform/linux-dpdk/odp_timer.c b/platform/linux-dpdk/odp_timer.c index cd193d352..4263592d0 100644 --- a/platform/linux-dpdk/odp_timer.c +++ b/platform/linux-dpdk/odp_timer.c @@ -130,8 +130,10 @@ int odp_timer_init_global(const odp_init_t *params) * created. */ odp_global_rw->inline_timers = false; - if (params && params->not_used.feat.timer) + if (params && params->not_used.feat.timer) { + timer_global = NULL; return 0; + } shm = odp_shm_reserve("timer_global", sizeof(timer_global_t), ODP_CACHE_LINE_SIZE, 0); @@ -163,10 +165,11 @@ int odp_timer_init_global(const odp_init_t *params) int odp_timer_term_global(void) { - if (timer_global == NULL) - return 0; + if (timer_global && odp_shm_free(timer_global->shm)) { + ODP_ERR("Shm free failed for odp_timer\n"); + return -1; + } - odp_shm_free(timer_global->shm); return 0; } |