aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index fcad7e060938..4010aa6b4e53 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -269,17 +269,6 @@ static void amdgpu_fence_check_lockup(struct work_struct *work)
269 if (amdgpu_fence_activity(ring)) { 269 if (amdgpu_fence_activity(ring)) {
270 wake_up_all(&ring->fence_drv.fence_queue); 270 wake_up_all(&ring->fence_drv.fence_queue);
271 } 271 }
272 else if (amdgpu_ring_is_lockup(ring)) {
273 /* good news we believe it's a lockup */
274 dev_warn(ring->adev->dev, "GPU lockup (current fence id "
275 "0x%016llx last fence id 0x%016llx on ring %d)\n",
276 (uint64_t)atomic64_read(&fence_drv->last_seq),
277 fence_drv->sync_seq[ring->idx], ring->idx);
278
279 /* remember that we need an reset */
280 ring->adev->needs_reset = true;
281 wake_up_all(&ring->fence_drv.fence_queue);
282 }
283 up_read(&ring->adev->exclusive_lock); 272 up_read(&ring->adev->exclusive_lock);
284} 273}
285 274
@@ -380,7 +369,6 @@ static bool amdgpu_fence_enable_signaling(struct fence *f)
380 */ 369 */
381static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) 370static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq)
382{ 371{
383 struct amdgpu_device *adev = ring->adev;
384 bool signaled = false; 372 bool signaled = false;
385 373
386 BUG_ON(!ring); 374 BUG_ON(!ring);
@@ -391,8 +379,7 @@ static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq)
391 return 0; 379 return 0;
392 380
393 wait_event(ring->fence_drv.fence_queue, ( 381 wait_event(ring->fence_drv.fence_queue, (
394 (signaled = amdgpu_fence_seq_signaled(ring, seq)) 382 (signaled = amdgpu_fence_seq_signaled(ring, seq))));
395 || adev->needs_reset));
396 383
397 if (signaled) 384 if (signaled)
398 return 0; 385 return 0;
@@ -939,11 +926,6 @@ signed long amdgpu_fence_wait_any(struct amdgpu_device *adev,
939 if (amdgpu_test_signaled_any(array, count)) 926 if (amdgpu_test_signaled_any(array, count))
940 break; 927 break;
941 928
942 if (adev->needs_reset) {
943 t = -EDEADLK;
944 break;
945 }
946
947 t = schedule_timeout(t); 929 t = schedule_timeout(t);
948 930
949 if (t > 0 && intr && signal_pending(current)) 931 if (t > 0 && intr && signal_pending(current))