drm/amdgpu: set bulk_moveable to false when a per VM is released

Otherwise we might run into a use after free during bulk move.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Christian König 2018-09-05 17:04:44 +02:00 committed by Alex Deucher
parent 03f67ed10d
commit fbbf794cbd
1 changed files with 4 additions and 0 deletions

View File

@ -2512,8 +2512,12 @@ void amdgpu_vm_bo_rmv(struct amdgpu_device *adev,
struct amdgpu_bo_va *bo_va)
{
struct amdgpu_bo_va_mapping *mapping, *next;
struct amdgpu_bo *bo = bo_va->base.bo;
struct amdgpu_vm *vm = bo_va->base.vm;
if (bo && bo->tbo.resv == vm->root.base.bo->tbo.resv)
vm->bulk_moveable = false;
list_del(&bo_va->base.bo_list);
spin_lock(&vm->invalidated_lock);