/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2019-2020 Broadcom
+ * Copyright(c) 2019-2021 Broadcom
* All rights reserved.
*/
}
int
-ba_init(struct bitalloc *pool, int size)
+ba_init(struct bitalloc *pool, int size, bool free)
{
bitalloc_word_t *mem = (bitalloc_word_t *)pool;
int i;
pool->storage[offset++] = words[--lev];
}
- /* Free the entire pool */
- for (i = 0; i < size; i++)
- ba_free(pool, i);
+ /* Free the entire pool if it is required*/
+ if (free) {
+ for (i = 0; i < size; i++)
+ ba_free(pool, i);
+ }
return 0;
}