diff options
author | 2024-08-01 12:07:00 -0700 | |
---|---|---|
committer | 2024-08-01 12:26:43 -0700 | |
commit | 189318d74a8b7ce74dbc76ec4d614e369d22a00a (patch) | |
tree | fa39eaaa0b820b184c5ad34440f00d4ba1ba827a | |
parent | 45ccd13dd68b5be72440cbcadb3c5bbe7f71ba4d (diff) |
Fix updatable driver loading issue with Vulkan.
When unloading Vulkan driver, check if close() function is non-NULL
before calling it.
Bug: 349287141
Change-Id: I1e6c3c80e57dceecd41888541044807e1dab45af
-rw-r--r-- | vulkan/libvulkan/driver.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp index 81fd1185b6..e9204ab65a 100644 --- a/vulkan/libvulkan/driver.cpp +++ b/vulkan/libvulkan/driver.cpp @@ -339,10 +339,13 @@ void Hal::UnloadBuiltinDriver() { ALOGD("Unload builtin Vulkan driver."); - // Close the opened device - int err = hal_.dev_->common.close( - const_cast<struct hw_device_t*>(&hal_.dev_->common)); - ALOG_ASSERT(!err, "hw_device_t::close() failed."); + if (hal_.dev_->common.close != nullptr) + { + // Close the opened device + int err = hal_.dev_->common.close( + const_cast<struct hw_device_t*>(&hal_.dev_->common)); + ALOG_ASSERT(!err, "hw_device_t::close() failed."); + } // Close the opened shared library in the hw_module_t android_unload_sphal_library(hal_.dev_->common.module->dso); |