radv: for external memory imports close the fd on import success
authorDave Airlie <airlied@redhat.com>
Mon, 24 Jul 2017 02:45:03 +0000 (03:45 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 24 Jul 2017 03:41:36 +0000 (04:41 +0100)
If we get an fd, we need to close it before returning.

Fixes CTS test dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_multiple_times

Fixes: b70829708a (radv: Implement VK_KHR_external_memory)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_device.c

index 81053ac21640d3c721e6fce2b34a2fdf2afcbbd6..619e0f2fbe428935d846ad633ef9eeb444754d9a 100644 (file)
@@ -2253,8 +2253,10 @@ VkResult radv_AllocateMemory(
                if (!mem->bo) {
                        result = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR;
                        goto fail;
-               } else
+               } else {
+                       close(import_info->fd);
                        goto out_success;
+               }
        }
 
        uint64_t alloc_size = align_u64(pAllocateInfo->allocationSize, 4096);