From: Jason Ekstrand Date: Fri, 25 Oct 2019 20:42:22 +0000 (-0500) Subject: anv: Fix a potential BO handle leak X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb257e1852473e3bc49bb9e0fe014741894f7bd0;p=mesa.git anv: Fix a potential BO handle leak Fixes: 731c4adcf9b "anv/allocator: Add support for non-userptr" Reviewed-by: Lionel Landwerlin --- diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index 7cfca6ea808..80c2c6f3368 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -534,9 +534,11 @@ anv_block_pool_expand_range(struct anv_block_pool *pool, if (use_softpin) { gem_handle = anv_gem_create(pool->device, newbo_size); map = anv_gem_mmap(pool->device, gem_handle, 0, newbo_size, 0); - if (map == MAP_FAILED) + if (map == MAP_FAILED) { + anv_gem_close(pool->device, gem_handle); return vk_errorf(pool->device->instance, pool->device, VK_ERROR_MEMORY_MAP_FAILED, "gem mmap failed: %m"); + } assert(center_bo_offset == 0); } else { /* Just leak the old map until we destroy the pool. We can't munmap it