SWDEV-327967 - Fix Segmentation fault in hipFree

Queue creation and release fails during hipFree causing seg fault
if the null queue was not created until then and there is no
device memory left.

Change-Id: I118b86b58e777dac5415bc9ba0c4e23c986efa7d


[ROCm/clr commit: 4a90c3ccaf]
Este cometimento está contido em:
Satyanvesh Dittakavi cometeu 2022-03-22 00:34:40 -04:00
1 ascendente d29a3ae502
cometimento 6a849eb690
2 ficheiros modificados
+7 -2

Não existem ficheiros que correspondam à sua pesquisa

+4 -1
Ver ficheiro
@@ -101,7 +101,10 @@ hipError_t ihipFree(void *ptr)
}
} else {
// Wait on the device, associated with the current memory object
hip::getNullStream(memory_object->getContext())->finish();
amd::HostQueue* queue = hip::getNullStream(memory_object->getContext());
if (queue != nullptr) {
queue->finish();
}
deviceID = hip::getDeviceID(memory_object->getContext());
}
hip::Stream::syncNonBlockingStreams(deviceID);
+3 -1
Ver ficheiro
@@ -110,7 +110,9 @@ bool Stream::Create() {
queue->vdev()->profilerAttach(isProfilerAttached);
device_->SaveQueue(queue);
} else if (queue != nullptr) {
queue->release();
// Queue creation has failed, and virtual device associated with the queue may not be created.
// Just need to delete the queue instance.
delete queue;
}
return result;