aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_ring.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 38fa14429320..e50513a62735 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -130,6 +130,8 @@ void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
130 if (tmp == NULL) { 130 if (tmp == NULL) {
131 return; 131 return;
132 } 132 }
133 if (!tmp->fence->emited)
134 radeon_fence_unref(&tmp->fence);
133 mutex_lock(&rdev->ib_pool.mutex); 135 mutex_lock(&rdev->ib_pool.mutex);
134 tmp->free = true; 136 tmp->free = true;
135 mutex_unlock(&rdev->ib_pool.mutex); 137 mutex_unlock(&rdev->ib_pool.mutex);
@@ -222,6 +224,7 @@ void radeon_ib_pool_fini(struct radeon_device *rdev)
222 } 224 }
223 mutex_lock(&rdev->ib_pool.mutex); 225 mutex_lock(&rdev->ib_pool.mutex);
224 radeon_ib_bogus_cleanup(rdev); 226 radeon_ib_bogus_cleanup(rdev);
227
225 if (rdev->ib_pool.robj) { 228 if (rdev->ib_pool.robj) {
226 r = radeon_bo_reserve(rdev->ib_pool.robj, false); 229 r = radeon_bo_reserve(rdev->ib_pool.robj, false);
227 if (likely(r == 0)) { 230 if (likely(r == 0)) {