diff options
Diffstat (limited to 'src/plugins/ioam')
-rw-r--r-- | src/plugins/ioam/ip6/ioam_cache.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/plugins/ioam/ip6/ioam_cache.h b/src/plugins/ioam/ip6/ioam_cache.h index b85172e8ac1..8c1b6291707 100644 --- a/src/plugins/ioam/ip6/ioam_cache.h +++ b/src/plugins/ioam/ip6/ioam_cache.h @@ -608,17 +608,20 @@ ioam_cache_ts_table_destroy (vlib_main_t * vm) int i; /* free pool and hash table */ - for (i = 0; i < no_of_threads; i++) + if (cm->ioam_ts_pool) { - pool_foreach (entry, cm->ioam_ts_pool[i]) - { - ioam_cache_ts_entry_free (i, entry, cm->error_node_index); - } - pool_free (cm->ioam_ts_pool[i]); - cm->ioam_ts_pool = 0; - tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]); + for (i = 0; i < no_of_threads; i++) + { + pool_foreach (entry, cm->ioam_ts_pool[i]) + { + ioam_cache_ts_entry_free (i, entry, cm->error_node_index); + } + pool_free (cm->ioam_ts_pool[i]); + cm->ioam_ts_pool[i] = 0; + tw_timer_wheel_free_16t_2w_512sl (&cm->timer_wheels[i]); + } + vec_free (cm->ioam_ts_pool); } - vec_free (cm->ioam_ts_pool); return (0); } |