This way we can always find a BO structure by its handle. Signed-off-by: Christian König <christian.koenig at amd.com> --- amdgpu/amdgpu_bo.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index d29be244..39228620 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -88,6 +88,11 @@ int amdgpu_bo_alloc(amdgpu_device_handle dev, bo->handle = args.out.handle; + pthread_mutex_lock(&bo->dev->bo_table_mutex); + util_hash_table_set(bo->dev->bo_handles, + (void*)(uintptr_t)bo->handle, bo); + pthread_mutex_unlock(&bo->dev->bo_table_mutex); + pthread_mutex_init(&bo->cpu_access_mutex, NULL); *buf_handle = bo; @@ -168,14 +173,6 @@ int amdgpu_bo_query_info(amdgpu_bo_handle bo, return 0; } -static void amdgpu_add_handle_to_table(amdgpu_bo_handle bo) -{ - pthread_mutex_lock(&bo->dev->bo_table_mutex); - util_hash_table_set(bo->dev->bo_handles, - (void*)(uintptr_t)bo->handle, bo); - pthread_mutex_unlock(&bo->dev->bo_table_mutex); -} - static int amdgpu_bo_export_flink(amdgpu_bo_handle bo) { struct drm_gem_flink flink; @@ -240,14 +237,11 @@ int amdgpu_bo_export(amdgpu_bo_handle bo, return 0; case amdgpu_bo_handle_type_kms: - amdgpu_add_handle_to_table(bo); - /* fall through */ case amdgpu_bo_handle_type_kms_noimport: *shared_handle = bo->handle; return 0; case amdgpu_bo_handle_type_dma_buf_fd: - amdgpu_add_handle_to_table(bo); return drmPrimeHandleToFD(bo->dev->fd, bo->handle, DRM_CLOEXEC | DRM_RDWR, (int*)shared_handle); -- 2.14.1