diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_ring.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_ring.c | 3 |
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)) { |