mirror of https://gitee.com/openkylin/linux.git
drm/radeon: fix lockup when BOs aren't part of the VM on release
If we unmap BOs before releasing them them the intervall tree locks up because we try to remove an entry not inside the tree. Based on a patch from Michel Dänzer. Signed-off-by: Christian König <christian.koenig@amd.com> CC: stable@vger.kernel.org Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
cd17e02ff4
commit
26d4d129b6
|
@ -1107,7 +1107,8 @@ void radeon_vm_bo_rmv(struct radeon_device *rdev,
|
|||
list_del(&bo_va->bo_list);
|
||||
|
||||
mutex_lock(&vm->mutex);
|
||||
interval_tree_remove(&bo_va->it, &vm->va);
|
||||
if (bo_va->it.start || bo_va->it.last)
|
||||
interval_tree_remove(&bo_va->it, &vm->va);
|
||||
spin_lock(&vm->status_lock);
|
||||
list_del(&bo_va->vm_status);
|
||||
|
||||
|
|
Loading…
Reference in New Issue