SWDEV-316467 - hipGraphMemcpyNodeSetParamsToSymbol negative scenarios
Change-Id: Ic2a6ce1572f35dabe754c9459690448c49bbd4a6
[ROCm/clr commit: 0440d945e8]
Этот коммит содержится в:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user