drm/radeon: fix prime teardown order
We unmapped imported DMA-bufs when the GEM handle was dropped, not when the hardware was done with the buffere. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> CC: stable@vger.kernel.org Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
342038d924
commit
0f4f715bc6
|
@ -34,8 +34,6 @@ void radeon_gem_object_free(struct drm_gem_object *gobj)
|
||||||
struct radeon_bo *robj = gem_to_radeon_bo(gobj);
|
struct radeon_bo *robj = gem_to_radeon_bo(gobj);
|
||||||
|
|
||||||
if (robj) {
|
if (robj) {
|
||||||
if (robj->gem_base.import_attach)
|
|
||||||
drm_prime_gem_destroy(&robj->gem_base, robj->tbo.sg);
|
|
||||||
radeon_mn_unregister(robj);
|
radeon_mn_unregister(robj);
|
||||||
radeon_bo_unref(&robj);
|
radeon_bo_unref(&robj);
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,6 +82,8 @@ static void radeon_ttm_bo_destroy(struct ttm_buffer_object *tbo)
|
||||||
mutex_unlock(&bo->rdev->gem.mutex);
|
mutex_unlock(&bo->rdev->gem.mutex);
|
||||||
radeon_bo_clear_surface_reg(bo);
|
radeon_bo_clear_surface_reg(bo);
|
||||||
WARN_ON_ONCE(!list_empty(&bo->va));
|
WARN_ON_ONCE(!list_empty(&bo->va));
|
||||||
|
if (bo->gem_base.import_attach)
|
||||||
|
drm_prime_gem_destroy(&bo->gem_base, bo->tbo.sg);
|
||||||
drm_gem_object_release(&bo->gem_base);
|
drm_gem_object_release(&bo->gem_base);
|
||||||
kfree(bo);
|
kfree(bo);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue