From 87f90197f26c0714b6d12da8096da23e7f7e64a5 Mon Sep 17 00:00:00 2001 From: kjayapra-amd Date: Thu, 19 Oct 2023 10:31:13 -0400 Subject: [PATCH] SWDEV-413997 - Fixing multiple access desc cases for hipMemSetAccess. Change-Id: Iec7d1207ec0a7136e4e74ef2e390f3347e753d40 [ROCm/clr commit: e226ae109ba6fda0b96f39c94229a7118def1739] --- projects/clr/hipamd/src/hip_vm.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/projects/clr/hipamd/src/hip_vm.cpp b/projects/clr/hipamd/src/hip_vm.cpp index 2059419489..249f224ede 100644 --- a/projects/clr/hipamd/src/hip_vm.cpp +++ b/projects/clr/hipamd/src/hip_vm.cpp @@ -280,15 +280,18 @@ hipError_t hipMemSetAccess(void* ptr, size_t size, const hipMemAccessDesc* desc, HIP_RETURN(hipErrorInvalidValue); } - if (desc->location.id >= g_devices.size()) { - HIP_RETURN(hipErrorInvalidValue) - } + for (size_t desc_idx = 0; desc_idx < count; ++desc_idx) { - auto& dev = g_devices[desc->location.id]; - amd::Device::VmmAccess access_flags = static_cast(desc->flags); + if (desc[desc_idx].location.id >= g_devices.size()) { + HIP_RETURN(hipErrorInvalidValue) + } - if (!dev->devices()[0]->SetMemAccess(ptr, size, access_flags, count)) { - HIP_RETURN(hipErrorInvalidValue); + auto& dev = g_devices[desc[desc_idx].location.id]; + amd::Device::VmmAccess access_flags = static_cast(desc[desc_idx].flags); + + if (!dev->devices()[0]->SetMemAccess(ptr, size, access_flags, count)) { + HIP_RETURN(hipErrorInvalidValue); + } } HIP_RETURN(hipSuccess);