@@ -59,10 +59,6 @@ typedef struct coarse_memory_provider_t {
5959 // "coarse (<name_of_upstream_provider>)"
6060 // for example: "coarse (L0)"
6161 char * name ;
62-
63- // Set to true if the free() operation of the upstream memory provider is not supported
64- // (i.e. if (umfMemoryProviderFree(upstream_memory_provider, NULL, 0) == UMF_RESULT_ERROR_NOT_SUPPORTED)
65- bool disable_upstream_provider_free ;
6662} coarse_memory_provider_t ;
6763
6864typedef struct ravl_node ravl_node_t ;
@@ -918,13 +914,6 @@ static umf_result_t coarse_memory_provider_initialize(void *params,
918914 coarse_provider -> allocation_strategy = coarse_params -> allocation_strategy ;
919915 coarse_provider -> init_buffer = coarse_params -> init_buffer ;
920916
921- if (coarse_provider -> upstream_memory_provider ) {
922- coarse_provider -> disable_upstream_provider_free =
923- umfIsFreeOpDefault (coarse_provider -> upstream_memory_provider );
924- } else {
925- coarse_provider -> disable_upstream_provider_free = false;
926- }
927-
928917 umf_result_t umf_result = coarse_memory_provider_set_name (coarse_provider );
929918 if (umf_result != UMF_RESULT_SUCCESS ) {
930919 LOG_ERR ("name initialization failed" );
@@ -1027,8 +1016,7 @@ static void coarse_ravl_cb_rm_upstream_blocks_node(void *data, void *arg) {
10271016 block_t * alloc = node_data -> value ;
10281017 assert (alloc );
10291018
1030- if (coarse_provider -> upstream_memory_provider &&
1031- !coarse_provider -> disable_upstream_provider_free ) {
1019+ if (coarse_provider -> upstream_memory_provider ) {
10321020 // We continue to deallocate alloc blocks even if the upstream provider doesn't return success.
10331021 umfMemoryProviderFree (coarse_provider -> upstream_memory_provider ,
10341022 alloc -> data , alloc -> size );
@@ -1288,10 +1276,8 @@ static umf_result_t coarse_memory_provider_alloc(void *provider, size_t size,
12881276
12891277 umf_result = coarse_add_upstream_block (coarse_provider , * resultPtr , size );
12901278 if (umf_result != UMF_RESULT_SUCCESS ) {
1291- if (!coarse_provider -> disable_upstream_provider_free ) {
1292- umfMemoryProviderFree (coarse_provider -> upstream_memory_provider ,
1293- * resultPtr , size );
1294- }
1279+ umfMemoryProviderFree (coarse_provider -> upstream_memory_provider ,
1280+ * resultPtr , size );
12951281 goto err_unlock ;
12961282 }
12971283
@@ -1657,12 +1643,12 @@ umf_memory_provider_ops_t UMF_COARSE_MEMORY_PROVIDER_OPS = {
16571643 .initialize = coarse_memory_provider_initialize ,
16581644 .finalize = coarse_memory_provider_finalize ,
16591645 .alloc = coarse_memory_provider_alloc ,
1646+ .free = coarse_memory_provider_free ,
16601647 .get_last_native_error = coarse_memory_provider_get_last_native_error ,
16611648 .get_recommended_page_size =
16621649 coarse_memory_provider_get_recommended_page_size ,
16631650 .get_min_page_size = coarse_memory_provider_get_min_page_size ,
16641651 .get_name = coarse_memory_provider_get_name ,
1665- .ext .free = coarse_memory_provider_free ,
16661652 .ext .purge_lazy = coarse_memory_provider_purge_lazy ,
16671653 .ext .purge_force = coarse_memory_provider_purge_force ,
16681654 .ext .allocation_merge = coarse_memory_provider_allocation_merge ,
0 commit comments