From 614b00c20bcd79ac3988f9c0282929fa256f62f0 Mon Sep 17 00:00:00 2001 From: Jaydeep Patel Date: Fri, 27 Sep 2024 19:44:47 +0000 Subject: [PATCH] SWDEV-487905 - Managed vars are registered in __hipRegisterManagedVar however not freed. Change-Id: Ic5a72ac4d64a9f7f5a3a7a88e1ed813e6dcc1f57 --- hipamd/src/hip_code_object.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hipamd/src/hip_code_object.cpp b/hipamd/src/hip_code_object.cpp index a5a3fb5861..723b947010 100644 --- a/hipamd/src/hip_code_object.cpp +++ b/hipamd/src/hip_code_object.cpp @@ -1170,13 +1170,17 @@ hipError_t StatCO::removeFatBinary(FatBinaryInfo** module) { auto it = managedVars_.begin(); while (it != managedVars_.end()) { if ((*it)->moduleInfo() == module) { + hipError_t err; for (auto dev : g_devices) { DeviceVar* dvar = nullptr; IHIP_RETURN_ONFAIL((*it)->getStatDeviceVar(&dvar, dev->deviceId())); // free also deletes the device ptr - hipError_t err = ihipFree(dvar->device_ptr()); + err = ihipFree(dvar->device_ptr()); assert(err == hipSuccess); } + err = ihipFree(*(static_cast((*it)->getManagedVarPtr()))); + assert(err == hipSuccess); + delete *it; it = managedVars_.erase(it); } else { ++it;