Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Christian König and committed by
Alex Deucher
0f4f715b 342038d9

+2 -2
-2
drivers/gpu/drm/radeon/radeon_gem.c
··· 34 34 struct radeon_bo *robj = gem_to_radeon_bo(gobj); 35 35 36 36 if (robj) { 37 - if (robj->gem_base.import_attach) 38 - drm_prime_gem_destroy(&robj->gem_base, robj->tbo.sg); 39 37 radeon_mn_unregister(robj); 40 38 radeon_bo_unref(&robj); 41 39 }
+2
drivers/gpu/drm/radeon/radeon_object.c
··· 82 82 mutex_unlock(&bo->rdev->gem.mutex); 83 83 radeon_bo_clear_surface_reg(bo); 84 84 WARN_ON_ONCE(!list_empty(&bo->va)); 85 + if (bo->gem_base.import_attach) 86 + drm_prime_gem_destroy(&bo->gem_base, bo->tbo.sg); 85 87 drm_gem_object_release(&bo->gem_base); 86 88 kfree(bo); 87 89 }