From ad72b42e36d1b0d26a7c6d49cc98b2b156f72bf3 Mon Sep 17 00:00:00 2001 From: Rahul Garg Date: Thu, 23 Jul 2020 01:21:17 +0000 Subject: [PATCH] Return error when mismatch in copy kind and ptrs Change-Id: I70e4d06e850843697035b42c5d1d56287c874ac8 [ROCm/hip commit: 519ef3f22eec383570a8c5788d3ff0cd2356dc5f] --- projects/hip/rocclr/hip_memory.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/projects/hip/rocclr/hip_memory.cpp b/projects/hip/rocclr/hip_memory.cpp index a24c8f93df..da8bd5be78 100755 --- a/projects/hip/rocclr/hip_memory.cpp +++ b/projects/hip/rocclr/hip_memory.cpp @@ -150,12 +150,14 @@ hipError_t ihipMemcpy(void* dst, const void* src, size_t sizeBytes, hipMemcpyKin size_t dOffset = 0; amd::Memory *dstMemory = getMemoryObject(dst, dOffset); amd::Device* queueDevice = &queue.device(); - - if (((srcMemory == nullptr) && (dstMemory == nullptr)) || - (kind == hipMemcpyHostToHost)) { - queue.finish(); - memcpy(dst, src, sizeBytes); - return hipSuccess; + if ((srcMemory == nullptr) && (dstMemory == nullptr)) { + if ((kind == hipMemcpyHostToHost) || (kind == hipMemcpyDefault)) { + queue.finish(); + memcpy(dst, src, sizeBytes); + return hipSuccess; + } else { + return hipErrorInvalidValue; + } } else if ((srcMemory == nullptr) && (dstMemory != nullptr)) { amd::HostQueue* pQueue = &queue; if (queueDevice != dstMemory->getContext().devices()[0]) {