From 4f985bd9cc61c461405042f434494e845d2e34fd Mon Sep 17 00:00:00 2001 From: Ajay Date: Sat, 9 Jul 2022 00:06:28 +0000 Subject: [PATCH] SWDEV-342009 SWDEV-340506 - assertion failures in managed variables Change-Id: Iac884f2e3cece96e605e353a8851274ba578e8be [ROCm/clr commit: 789e718549b6254490174d7ad984b98078f6b6cc] --- projects/clr/hipamd/src/hip_code_object.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/projects/clr/hipamd/src/hip_code_object.cpp b/projects/clr/hipamd/src/hip_code_object.cpp index 896b1e640b..3442eb42a5 100644 --- a/projects/clr/hipamd/src/hip_code_object.cpp +++ b/projects/clr/hipamd/src/hip_code_object.cpp @@ -723,9 +723,13 @@ hipError_t StatCO::removeFatBinary(FatBinaryInfo** module) { auto it = managedVars_.begin(); while (it != managedVars_.end()) { if ((*it)->moduleInfo() == module) { - hipError_t err = ihipFree((*it)->getManagedVarPtr()); - assert(err == hipSuccess); - delete *it; + 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()); + assert(err == hipSuccess); + } it = managedVars_.erase(it); } else { ++it;