X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdpo%2Fload_balance_map.c;h=588c1a75a4f92712e8bcbaaf3b80b19f40980f8f;hb=refs%2Fchanges%2F21%2F8621%2F3;hp=70ce1bf7c39b0b17aca4f38929c226b1c07499d5;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vnet/dpo/load_balance_map.c b/src/vnet/dpo/load_balance_map.c index 70ce1bf7c39..588c1a75a4f 100644 --- a/src/vnet/dpo/load_balance_map.c +++ b/src/vnet/dpo/load_balance_map.c @@ -88,10 +88,10 @@ load_balance_map_get_index (load_balance_map_t *lbm) } u8* -format_load_balance_map (u8 *s, va_list ap) +format_load_balance_map (u8 *s, va_list * ap) { - index_t lbmi = va_arg(ap, index_t); - u32 indent = va_arg(ap, u32); + index_t lbmi = va_arg(*ap, index_t); + u32 indent = va_arg(*ap, u32); load_balance_map_t *lbm; u32 n_buckets, ii; @@ -415,6 +415,14 @@ load_balance_map_init (load_balance_map_t *lbm, return (lbm); } +static void +load_balance_map_destroy (load_balance_map_t *lbm) +{ + vec_free(lbm->lbm_paths); + vec_free(lbm->lbm_buckets); + pool_put(load_balance_map_pool, lbm); +} + index_t load_balance_map_add_or_lock (u32 n_buckets, u32 sum_of_weights, @@ -434,6 +442,7 @@ load_balance_map_add_or_lock (u32 n_buckets, else { lbm = load_balance_map_get(lbmi); + load_balance_map_destroy(tmp); } lbm->lbm_locks++; @@ -468,9 +477,7 @@ load_balance_map_unlock (index_t lbmi) if (0 == lbm->lbm_locks) { load_balance_map_db_remove(lbm); - vec_free(lbm->lbm_paths); - vec_free(lbm->lbm_buckets); - pool_put(load_balance_map_pool, lbm); + load_balance_map_destroy(lbm); } }