Browse Source

drm/amdgpu: max_pde_used usage should be under protect

Need to take the lock when accessing this.

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <jammy.zhou@amd.com>
monk.liu 10 years ago
parent
commit
3d5a08c114
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

+ 5 - 1
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

@@ -90,10 +90,13 @@ struct amdgpu_bo_list_entry *amdgpu_vm_get_bos(struct amdgpu_device *adev,
 	struct amdgpu_bo_list_entry *list;
 	unsigned i, idx;
 
+	mutex_lock(&vm->mutex);
 	list = drm_malloc_ab(vm->max_pde_used + 2,
 			     sizeof(struct amdgpu_bo_list_entry));
-	if (!list)
+	if (!list) {
+		mutex_unlock(&vm->mutex);
 		return NULL;
+	}
 
 	/* add the vm page table to the list */
 	list[0].robj = vm->page_directory;
@@ -116,6 +119,7 @@ struct amdgpu_bo_list_entry *amdgpu_vm_get_bos(struct amdgpu_device *adev,
 		list[idx].tv.shared = true;
 		list_add(&list[idx++].tv.head, head);
 	}
+	mutex_unlock(&vm->mutex);
 
 	return list;
 }