From eff45831185fa57514dd5acdbecc346478f953b3 Mon Sep 17 00:00:00 2001 From: Payam Date: Thu, 10 Mar 2022 18:01:51 -0500 Subject: [PATCH] SWDEV-316819 - adding graph checks hipGraphChildGraphNodeGetGraph - Scenario 3: Pass Parent node instead of the child node Change-Id: Ia55921bca1e2745c9c97f2b7eb36244ffb719eb4 [ROCm/clr commit: 5dd91d698ba3a12beab48e2182f8da8c7430b109] --- projects/clr/hipamd/src/hip_graph.cpp | 4 +++- projects/clr/hipamd/src/hip_graph_internal.hpp | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/clr/hipamd/src/hip_graph.cpp b/projects/clr/hipamd/src/hip_graph.cpp index 8db0fd0e19..edd05ea13d 100644 --- a/projects/clr/hipamd/src/hip_graph.cpp +++ b/projects/clr/hipamd/src/hip_graph.cpp @@ -1200,7 +1200,9 @@ hipError_t hipGraphChildGraphNodeGetGraph(hipGraphNode_t node, hipGraph_t* pGrap HIP_RETURN(hipErrorInvalidValue); } *pGraph = reinterpret_cast(node)->GetChildGraph(); - if (pGraph == nullptr) { + + //if the node count is larger than 0, the current node is a parent + if (*pGraph == nullptr || reinterpret_cast(pGraph)->GetNodeCount() > 0) { HIP_RETURN(hipErrorInvalidValue); } HIP_RETURN(hipSuccess); diff --git a/projects/clr/hipamd/src/hip_graph_internal.hpp b/projects/clr/hipamd/src/hip_graph_internal.hpp index 5b6a3e719d..eeb5c05cf5 100644 --- a/projects/clr/hipamd/src/hip_graph_internal.hpp +++ b/projects/clr/hipamd/src/hip_graph_internal.hpp @@ -224,6 +224,7 @@ struct hipGraphNode { } } ihipGraph* GetParentGraph() { return parentGraph_; } + virtual ihipGraph* GetChildGraph() { return nullptr; } void SetParentGraph(ihipGraph* graph) { parentGraph_ = graph; } virtual hipError_t SetParams(hipGraphNode* node) { return hipSuccess; } };