浏览代码

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>
Christian König 7 年之前
父节点
当前提交
fbbf794cbd
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

+ 4 - 0
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

@@ -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);