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; }
