libhsakmt: Fix deadlock in map_mmio

Unlock mutex if MMIO mapping fails. This happens on all GFXv8 GPUs.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: I1dee1cbddefd9185c24ea79377f49f8ae2c5ff57


[ROCm/ROCR-Runtime commit: 19536080a8]
This commit is contained in:
Felix Kuehling
2021-07-07 21:19:25 -04:00
committed by Philip Yang
parent 1da08cffe1
commit 559bb50c6a
+3 -1
View File
@@ -2077,8 +2077,10 @@ static void *map_mmio(uint32_t node_id, uint32_t gpu_id, int mmap_fd)
mem = __fmm_allocate_device(gpu_id, NULL, PAGE_SIZE, aperture,
&mmap_offset, ioc_flags, &vm_obj);
if (!mem || !vm_obj)
if (!mem || !vm_obj) {
pthread_mutex_unlock(&aperture->fmm_mutex);
return NULL;
}
flags.Value = 0;
flags.ui32.NonPaged = 1;