From 538ebc5409e139d0c4c4e9b86c284f98ff488990 Mon Sep 17 00:00:00 2001 From: Ioannis Assiouras <38722728+iassiour@users.noreply.github.com> Date: Tue, 14 Oct 2025 10:08:49 +0100 Subject: [PATCH] SWDEV-556877 - Ensure pinned memory is released if hsa copy fails (#1137) --- projects/clr/rocclr/device/rocm/rocblit.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/projects/clr/rocclr/device/rocm/rocblit.cpp b/projects/clr/rocclr/device/rocm/rocblit.cpp index 49377f6492..b482f0a6d3 100644 --- a/projects/clr/rocclr/device/rocm/rocblit.cpp +++ b/projects/clr/rocclr/device/rocm/rocblit.cpp @@ -729,6 +729,8 @@ bool DmaBlitManager::hsaCopyStagedOrPinned(const_address hostSrc, address hostDs address dst = hostDst + copyOffset; status = rocrCopyBuffer(dst, dstAgent, stagingBuffer, srcAgent, copysize, copyMetadata); if (!status) { + // Release Pinned Memory back to pool if any + releaseBuffer(outBuffer); break; } } else { // D2H Path @@ -745,6 +747,8 @@ bool DmaBlitManager::hsaCopyStagedOrPinned(const_address hostSrc, address hostDs memcpy(hostDst + copyOffset, stagingBuffer, copysize); } } else { + // Release Pinned Memory back to pool if any + releaseBuffer(outBuffer); break; } }