From: Christian König <deathsim...@vodafone.de>

We can now protected the semaphore ram by a
fence, so free it immediately.

Signed-off-by: Christian König <deathsim...@vodafone.de>
---
 drivers/gpu/drm/radeon/radeon_ttm.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c 
b/drivers/gpu/drm/radeon/radeon_ttm.c
index 5e3d54d..0f6aee8 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -223,6 +223,7 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
        struct radeon_device *rdev;
        uint64_t old_start, new_start;
        struct radeon_fence *fence, *old_fence;
+       struct radeon_semaphore *sem = NULL;
        int r;
 
        rdev = radeon_get_rdev(bo->bdev);
@@ -272,15 +273,16 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
                bool sync_to_ring[RADEON_NUM_RINGS] = { };
                sync_to_ring[old_fence->ring] = true;
 
-               r = radeon_semaphore_create(rdev, &fence->semaphore);
+               r = radeon_semaphore_create(rdev, &sem);
                if (r) {
                        radeon_fence_unref(&fence);
                        return r;
                }
 
-               r = radeon_semaphore_sync_rings(rdev, fence->semaphore,
+               r = radeon_semaphore_sync_rings(rdev, sem,
                                                sync_to_ring, fence->ring);
                if (r) {
+                       radeon_semaphore_free(rdev, sem, NULL);
                        radeon_fence_unref(&fence);
                        return r;
                }
@@ -292,6 +294,7 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
        /* FIXME: handle copy error */
        r = ttm_bo_move_accel_cleanup(bo, (void *)fence, NULL,
                                      evict, no_wait_reserve, no_wait_gpu, 
new_mem);
+       radeon_semaphore_free(rdev, sem, fence);
        radeon_fence_unref(&fence);
        return r;
 }
-- 
1.7.7.6

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to