From 5c77e30b18ece1685f2628e7b4dcd9d83f8cdb4b Mon Sep 17 00:00:00 2001 From: Jaydeep Patel Date: Mon, 20 May 2024 17:37:23 +0000 Subject: [PATCH] SWDEV-457316 - Other graph can free mem alloc node and return invalid val only if there is double mem free node in all captured graphs. Change-Id: Icf12164bf0ecd171a4673ff4f384528e7671f944 --- hipamd/src/hip_graph.cpp | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/hipamd/src/hip_graph.cpp b/hipamd/src/hip_graph.cpp index 6c063b9609..16e9efde4f 100644 --- a/hipamd/src/hip_graph.cpp +++ b/hipamd/src/hip_graph.cpp @@ -2580,26 +2580,17 @@ hipError_t hipGraphAddMemFreeNode(hipGraphNode_t* pGraphNode, hipGraph_t graph, HIP_RETURN(hipErrorInvalidValue); } hip::GraphNode* pNode; - bool AllocNodeFound = false; - hip::Graph* g = reinterpret_cast(graph); - for (auto n : g->vertices_) { - if (n->GetType() == hipGraphNodeTypeMemAlloc) { - hipMemAllocNodeParams param = {}; - reinterpret_cast(n)->GetParams(¶m); - if (param.dptr == dev_ptr) { - AllocNodeFound = true; - } - } else if (n->GetType() == hipGraphNodeTypeMemFree) { - void* param; - reinterpret_cast(n)->GetParams(¶m); - if (param == dev_ptr) { - HIP_RETURN(hipErrorInvalidValue); + for (auto it : hip::Graph::graphSet_) { + for (auto n : it->vertices_) { + if (n->GetType() == hipGraphNodeTypeMemFree) { + void* param; + reinterpret_cast(n)->GetParams(¶m); + if (param == dev_ptr) { + HIP_RETURN(hipErrorInvalidValue); + } } } } - if (!AllocNodeFound) { - HIP_RETURN(hipErrorInvalidValue); - } auto status = ihipGraphAddMemFreeNode(&pNode, reinterpret_cast(graph),