From a6c83e443c906d37ce2e8e4ecfa41d12a331a19b Mon Sep 17 00:00:00 2001 From: agodavar Date: Fri, 19 Jun 2020 00:12:36 -0400 Subject: [PATCH] SWDEV-239297:hipMemset fix, getMemoryObject with unaligned ptr Change-Id: I37b8139c5099d37b42f34d728a3d694fdf9cb55d [ROCm/hip commit: 93da1b1f11e5302791c8f6f1e308d56dc311a82c] --- projects/hip/rocclr/hip_memory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/hip/rocclr/hip_memory.cpp b/projects/hip/rocclr/hip_memory.cpp index 235574fedb..826183a59a 100755 --- a/projects/hip/rocclr/hip_memory.cpp +++ b/projects/hip/rocclr/hip_memory.cpp @@ -1687,7 +1687,7 @@ hipError_t ihipMemset(void* dst, int64_t value, size_t valueSize, size_t sizeByt size_t offset = 0; auto aligned_dst = amd::alignUp(reinterpret_cast
(dst), sizeof(uint64_t)); - amd::Memory* memory = getMemoryObject(aligned_dst, offset); + amd::Memory* memory = getMemoryObject(dst, offset); if (memory == nullptr) { // Host alloced memory memset(dst, value, sizeBytes); @@ -1703,6 +1703,7 @@ hipError_t ihipMemset(void* dst, int64_t value, size_t valueSize, size_t sizeByt if (sizeBytes/sizeof(int64_t) > 0) { n_head_bytes = static_cast(aligned_dst) - static_cast(dst); n_tail_bytes = ((sizeBytes - n_head_bytes) % sizeof(int64_t)); + offset = offset + n_head_bytes; size_t n_bytes = sizeBytes - n_tail_bytes - n_head_bytes; if (n_bytes > 0) { if (valueSize == sizeof(int8_t)) {