Commit ad4147f0 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

memory: move freeing spdk_mem_map to a function



Change-Id: Ie5c2f75a444656531b0f63155ea348c39ebbbba5
Signed-off-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26211


Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
parent 1d5db582
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -271,12 +271,23 @@ err_unregister:
	return rc;
}

static void
mem_map_free(struct spdk_mem_map *map)
{
	size_t i;

	for (i = 0; i < SPDK_COUNTOF(map->map_256tb.map); i++) {
		free(map->map_256tb.map[i]);
	}
	pthread_mutex_destroy(&map->mutex);
	free(map);
}

struct spdk_mem_map *
spdk_mem_map_alloc(uint64_t default_translation, const struct spdk_mem_map_ops *ops, void *cb_ctx)
{
	struct spdk_mem_map *map;
	int rc;
	size_t i;

	map = calloc(1, sizeof(*map));
	if (map == NULL) {
@@ -300,11 +311,7 @@ spdk_mem_map_alloc(uint64_t default_translation, const struct spdk_mem_map_ops *
		if (rc != 0) {
			pthread_mutex_unlock(&g_spdk_mem_map_mutex);
			DEBUG_PRINT("Initial mem_map notify failed\n");
			pthread_mutex_destroy(&map->mutex);
			for (i = 0; i < sizeof(map->map_256tb.map) / sizeof(map->map_256tb.map[0]); i++) {
				free(map->map_256tb.map[i]);
			}
			free(map);
			mem_map_free(map);
			return NULL;
		}
		TAILQ_INSERT_TAIL(&g_spdk_mem_maps, map, tailq);
@@ -318,7 +325,6 @@ void
spdk_mem_map_free(struct spdk_mem_map **pmap)
{
	struct spdk_mem_map *map;
	size_t i;

	if (!pmap) {
		return;
@@ -337,13 +343,7 @@ spdk_mem_map_free(struct spdk_mem_map **pmap)
		pthread_mutex_unlock(&g_spdk_mem_map_mutex);
	}

	for (i = 0; i < sizeof(map->map_256tb.map) / sizeof(map->map_256tb.map[0]); i++) {
		free(map->map_256tb.map[i]);
	}

	pthread_mutex_destroy(&map->mutex);

	free(map);
	mem_map_free(map);
	*pmap = NULL;
}