diff options
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 469b6f2364bc..1f040d85ac47 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -817,12 +817,16 @@ int amdgpu_cs_wait_ioctl(struct drm_device *dev, void *data, | |||
817 | 817 | ||
818 | r = amdgpu_cs_get_ring(adev, wait->in.ip_type, wait->in.ip_instance, | 818 | r = amdgpu_cs_get_ring(adev, wait->in.ip_type, wait->in.ip_instance, |
819 | wait->in.ring, &ring); | 819 | wait->in.ring, &ring); |
820 | if (r) | 820 | if (r) { |
821 | amdgpu_ctx_put(ctx); | ||
821 | return r; | 822 | return r; |
823 | } | ||
822 | 824 | ||
823 | r = amdgpu_fence_recreate(ring, filp, wait->in.handle, &fence); | 825 | r = amdgpu_fence_recreate(ring, filp, wait->in.handle, &fence); |
824 | if (r) | 826 | if (r) { |
827 | amdgpu_ctx_put(ctx); | ||
825 | return r; | 828 | return r; |
829 | } | ||
826 | 830 | ||
827 | r = fence_wait_timeout(&fence->base, true, timeout); | 831 | r = fence_wait_timeout(&fence->base, true, timeout); |
828 | amdgpu_fence_unref(&fence); | 832 | amdgpu_fence_unref(&fence); |