From 818464f44377952fc603678debd3ec41a8b3ecc3 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Mon, 16 Jun 2025 01:42:35 -0700 Subject: [PATCH] turnip: free up hwvulkan_device_t upon driver unloading Per , the hw_device_t::close() function is called upon driver unloading. The behavior has been like this since Android 10. Acked-by: Rob Clark Part-of: --- src/freedreno/vulkan/tu_android.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_android.cc b/src/freedreno/vulkan/tu_android.cc index 6afeac66066..cada66ab826 100644 --- a/src/freedreno/vulkan/tu_android.cc +++ b/src/freedreno/vulkan/tu_android.cc @@ -76,7 +76,13 @@ tu_hal_open(const struct hw_module_t *mod, static int tu_hal_close(struct hw_device_t *dev) { - /* hwvulkan.h claims that hw_device_t::close() is never called. */ + /* the hw_device_t::close() function is called upon driver unloading */ + assert(dev->version == HWVULKAN_DEVICE_API_VERSION_0_1); + assert(dev->module == &HAL_MODULE_INFO_SYM.common); + vk_android_destroy_ugralloc(); - return -1; + + hwvulkan_device_t *hal_dev = container_of(dev, hwvulkan_device_t, common); + free(hal_dev); + return 0; }