Mesa (staging/19.2): anv: Fix a potential BO handle leak

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 4 16:07:29 UTC 2019


Module: Mesa
Branch: staging/19.2
Commit: 3de8c6e8fbfa73fb2c74c1c42230a54c9562eab3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3de8c6e8fbfa73fb2c74c1c42230a54c9562eab3

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Fri Oct 25 15:42:22 2019 -0500

anv: Fix a potential BO handle leak

Fixes: 731c4adcf9b "anv/allocator: Add support for non-userptr"
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
(cherry picked from commit bb257e1852473e3bc49bb9e0fe014741894f7bd0)

---

 src/intel/vulkan/anv_allocator.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c
index 1f5495d56b2..fd3818ff9aa 100644
--- a/src/intel/vulkan/anv_allocator.c
+++ b/src/intel/vulkan/anv_allocator.c
@@ -532,9 +532,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




More information about the mesa-commit mailing list