drm/amdgpu: Reserve space for shared fence
authorOak Zeng <Oak.Zeng@amd.com>
Tue, 11 Jun 2019 16:15:00 +0000 (11:15 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 13 Jun 2019 18:59:48 +0000 (13:59 -0500)
Call reservation_object_reserve_shared to reserve
space for shared fence. Otherwise it will trigger
BUG_ON condition in reservation_object_add_shared_fence.

Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Acked-by: Christian Konig <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c

index 81e0e758cc548362313df15f0ed508e4b20b5cf5..74e86952553f348742d3b5d72fd99e146c14c830 100644 (file)
@@ -2152,12 +2152,16 @@ int amdgpu_amdkfd_add_gws_to_process(void *info, void *gws, struct kgd_mem **mem
         * Add process eviction fence to bo so they can
         * evict each other.
         */
+       ret = reservation_object_reserve_shared(gws_bo->tbo.resv, 1);
+       if (ret)
+               goto reserve_shared_fail;
        amdgpu_bo_fence(gws_bo, &process_info->eviction_fence->base, true);
        amdgpu_bo_unreserve(gws_bo);
        mutex_unlock(&(*mem)->process_info->lock);
 
        return ret;
 
+reserve_shared_fail:
 bo_validation_failure:
        amdgpu_bo_unreserve(gws_bo);
 bo_reservation_failure: