SWDEV-353281 - Corret VA unmap
Make sure graph mempool unmaps VA on release Change-Id: Id3f1bd8d0115b533ae60aa5ba3676b8bf7e5b961
This commit is contained in:
@@ -2598,6 +2598,7 @@ void VirtualGPU::submitVirtualMap(amd::VirtualMapCommand& vcmd) {
|
||||
assert(amd::MemObjMap::FindMemObj(vcmd.ptr()) == nullptr);
|
||||
amd::MemObjMap::AddMemObj(vcmd.ptr(), vaddr_sub_obj);
|
||||
vaddr_sub_obj->getUserData().phys_mem_obj = phys_mem_obj;
|
||||
phys_mem_obj->getUserData().vaddr_mem_obj = vaddr_sub_obj;
|
||||
} else {
|
||||
LogError("HSA Command: hsa_amd_vmem_map failed!");
|
||||
}
|
||||
@@ -2614,7 +2615,10 @@ void VirtualGPU::submitVirtualMap(amd::VirtualMapCommand& vcmd) {
|
||||
// assert the va is mapped and needs to be removed
|
||||
vaddr_sub_obj->getContext().devices()[0]->DestroyVirtualBuffer(vaddr_sub_obj);
|
||||
amd::MemObjMap::RemoveMemObj(vcmd.ptr());
|
||||
vaddr_sub_obj->getUserData().phys_mem_obj = nullptr;
|
||||
if (vaddr_sub_obj->getUserData().phys_mem_obj != nullptr) {
|
||||
vaddr_sub_obj->getUserData().phys_mem_obj->getUserData().vaddr_mem_obj = nullptr;
|
||||
vaddr_sub_obj->getUserData().phys_mem_obj = nullptr;
|
||||
}
|
||||
} else {
|
||||
LogError("HSA Command: hsa_amd_vmem_unmap failed");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user