aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
index 7d8f8f1e3f7f..2faf03bcda21 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
@@ -357,12 +357,15 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager,
357 357
358 for (i = 0, count = 0; i < AMDGPU_MAX_RINGS; ++i) 358 for (i = 0, count = 0; i < AMDGPU_MAX_RINGS; ++i)
359 if (fences[i]) 359 if (fences[i])
360 fences[count++] = fences[i]; 360 fences[count++] = fence_get(fences[i]);
361 361
362 if (count) { 362 if (count) {
363 spin_unlock(&sa_manager->wq.lock); 363 spin_unlock(&sa_manager->wq.lock);
364 t = fence_wait_any_timeout(fences, count, false, 364 t = fence_wait_any_timeout(fences, count, false,
365 MAX_SCHEDULE_TIMEOUT); 365 MAX_SCHEDULE_TIMEOUT);
366 for (i = 0; i < count; ++i)
367 fence_put(fences[i]);
368
366 r = (t > 0) ? 0 : t; 369 r = (t > 0) ? 0 : t;
367 spin_lock(&sa_manager->wq.lock); 370 spin_lock(&sa_manager->wq.lock);
368 } else { 371 } else {