From: Andrey Grodzovsky Date: Mon, 30 Apr 2018 14:04:42 +0000 (-0400) Subject: drm/amdgpu: Switch to interruptable wait to recover from ring hang. X-Git-Tag: v5.15~8594^2~16^2~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=719a39a1e9b2dfbfb86f17a8da696b714a3b885d;p=platform%2Fkernel%2Flinux-starfive.git drm/amdgpu: Switch to interruptable wait to recover from ring hang. v2: Use dma_fence_wait instead of dma_fence_wait_timeout(...,MAX_SCHEDULE_TIMEOUT) Avoid printing error message for ERESTARTSYS Originally-by: David Panariti Signed-off-by: Andrey Grodzovsky Reviewed-by: Christian König Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c index eb80edf..6741a62 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c @@ -421,9 +421,11 @@ int amdgpu_ctx_wait_prev_fence(struct amdgpu_ctx *ctx, unsigned ring_id) if (other) { signed long r; - r = dma_fence_wait_timeout(other, false, MAX_SCHEDULE_TIMEOUT); + r = dma_fence_wait(other, true); if (r < 0) { - DRM_ERROR("Error (%ld) waiting for fence!\n", r); + if (r != -ERESTARTSYS) + DRM_ERROR("Error (%ld) waiting for fence!\n", r); + return r; } }