SWDEV-316467 - hipGraphMemcpyNodeSetParamsToSymbol negative scenarios

Change-Id: Ic2a6ce1572f35dabe754c9459690448c49bbd4a6


[ROCm/clr commit: 0440d945e8]
Этот коммит содержится в:
Ajay
2022-01-25 00:11:58 +00:00
родитель 6b86bb1618
Коммит c27ec6c94e
2 изменённых файлов: 27 добавлений и 0 удалений
+7
Просмотреть файл
@@ -1385,6 +1385,13 @@ hipError_t hipGraphMemcpyNodeSetParamsToSymbol(hipGraphNode_t node, const void*
const void* src, size_t count, size_t offset,
hipMemcpyKind kind) {
HIP_INIT_API(hipGraphMemcpyNodeSetParamsToSymbol, symbol, src, count, offset, kind);
if (node == nullptr || src == nullptr || count == 0 || symbol == src) {
return hipErrorInvalidValue;
}
if (symbol == nullptr) {
return hipErrorInvalidSymbol;
}
HIP_RETURN(reinterpret_cast<hipGraphMemcpyNodeToSymbol*>(node)->SetParams(symbol, src, count,
offset, kind));
}
+20
Просмотреть файл
@@ -716,6 +716,26 @@ class hipGraphMemcpyNodeToSymbol : public hipGraphMemcpyNode1D {
hipError_t SetParams(const void* symbol, const void* src, size_t count, size_t offset,
hipMemcpyKind kind) {
size_t zeroOffset = 0;
amd::Memory* srcMemory = getMemoryObject(src, zeroOffset);
amd::Memory* dstMemory = getMemoryObject(symbol, zeroOffset);
hipMemoryType srcMemoryType =
amd::MemObjMap::FindMemObj(srcMemory) ? hipMemoryTypeDevice : hipMemoryTypeHost;
hipMemoryType dstMemoryType =
amd::MemObjMap::FindMemObj(dstMemory) ? hipMemoryTypeDevice : hipMemoryTypeHost;
// Return error if sizeBytes passed to memcpy is more than the actual size allocated
if ((dstMemory && count > (dstMemory->getSize() - offset)) ||
(srcMemory && count > (srcMemory->getSize() - offset))) {
return hipErrorInvalidValue;
}
// check the kind with memory types
if (std::get<0>(hip::getMemoryType(kind)) != srcMemoryType)
return hipErrorInvalidValue;
if (std::get<1>(hip::getMemoryType(kind)) != dstMemoryType)
return hipErrorInvalidValue;
size_t sym_size = 0;
hipDeviceptr_t device_ptr = nullptr;