From: Christian König Date: Thu, 6 Aug 2015 18:44:47 +0000 (+0200) Subject: drm/amdgpu: use the reservation obj wait for the UVD msg X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=713293b82563006df3cc91582b5b36b092481d76;p=deliverable%2Flinux.git drm/amdgpu: use the reservation obj wait for the UVD msg Signed-off-by: Christian König Reviewed-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index f114c6b49b9d..b56cace92fc6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c @@ -513,7 +513,6 @@ static int amdgpu_uvd_cs_msg(struct amdgpu_uvd_cs_ctx *ctx, { struct amdgpu_device *adev = ctx->parser->adev; int32_t *msg, msg_type, handle; - struct fence *f; void *ptr; int i, r; @@ -523,13 +522,11 @@ static int amdgpu_uvd_cs_msg(struct amdgpu_uvd_cs_ctx *ctx, return -EINVAL; } - f = reservation_object_get_excl(bo->tbo.resv); - if (f) { - r = amdgpu_fence_wait((struct amdgpu_fence *)f, false); - if (r) { - DRM_ERROR("Failed waiting for UVD message (%d)!\n", r); - return r; - } + r = reservation_object_wait_timeout_rcu(bo->tbo.resv, true, false, + MAX_SCHEDULE_TIMEOUT); + if (r) { + DRM_ERROR("Failed waiting for UVD message (%d)!\n", r); + return r; } r = amdgpu_bo_kmap(bo, &ptr);