When during LIDs assignment process free lid range is consumed its memory should be freed (as well as removing from free ranges list).
Signed-off-by: Sasha Khapyorsky <[email protected]> --- opensm/opensm/osm_lid_mgr.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c index f14d377..9896196 100644 --- a/opensm/opensm/osm_lid_mgr.c +++ b/opensm/opensm/osm_lid_mgr.c @@ -636,11 +636,12 @@ static void lid_mgr_find_free_lid_range(IN osm_lid_mgr_t * p_mgr, /* but we can be out of the range */ if (lid + num_lids - 1 <= p_range->max_lid) { /* ok let us use that range */ - if (lid + num_lids - 1 == p_range->max_lid) + if (lid + num_lids - 1 == p_range->max_lid) { /* we consumed the entire range */ cl_qlist_remove_item(&p_mgr->free_ranges, p_item); - else + free(p_item); + } else /* only update the available range */ p_range->min_lid = lid + num_lids; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
