Module: Mesa
Branch: main
Commit: 4c711460d4e665664a1fac1b9b9c07aea91e7bab
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c711460d4e665664a1fac1b9b9c07aea91e7bab

Author: Rob Clark <[email protected]>
Date:   Fri Feb 24 14:58:32 2023 -0800

tu/kgsl: Propagate tu_physical_device_init() errors

Should fix 
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic

Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21394>

---

 src/freedreno/vulkan/tu_knl_kgsl.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/vulkan/tu_knl_kgsl.c 
b/src/freedreno/vulkan/tu_knl_kgsl.c
index 75c41335185..ca9ac3bbabb 100644
--- a/src/freedreno/vulkan/tu_knl_kgsl.c
+++ b/src/freedreno/vulkan/tu_knl_kgsl.c
@@ -842,6 +842,8 @@ tu_knl_kgsl_load(struct tu_instance *instance, int fd)
       return vk_error(instance, VK_ERROR_OUT_OF_HOST_MEMORY);
    }
 
+   VkResult result = VK_ERROR_INITIALIZATION_FAILED;
+
    struct kgsl_devinfo info;
    if (get_kgsl_prop(fd, KGSL_PROP_DEVICE_INFO, &info, sizeof(info)))
       goto fail;
@@ -872,7 +874,8 @@ tu_knl_kgsl_load(struct tu_instance *instance, int fd)
 
    instance->knl = &kgsl_knl_funcs;
 
-   if (tu_physical_device_init(device, instance) != VK_SUCCESS)
+   result = tu_physical_device_init(device, instance);
+   if (result != VK_SUCCESS)
       goto fail;
 
    list_addtail(&device->vk.link, &instance->vk.physical_devices.list);
@@ -882,5 +885,5 @@ tu_knl_kgsl_load(struct tu_instance *instance, int fd)
 fail:
    vk_free(&instance->vk.alloc, device);
    close(fd);
-   return VK_ERROR_INITIALIZATION_FAILED;
+   return result;
 }

Reply via email to