diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch b/common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch deleted file mode 100644 index dac96fbb..00000000 --- a/common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 69b576a1bc8b466ae7bff0208f1c139dbaaf802c Mon Sep 17 00:00:00 2001 -From: Chunming Zhou <David1.Zhou@amd.com> -Date: Wed, 18 Nov 2015 11:17:39 +0800 -Subject: [PATCH 0700/1565] drm/amdgpu: add mutex for ba_va->valids/invalids -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Chunming Zhou <David1.Zhou@amd.com> -Reviewed-by: Christian König <christian.koenig@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + - drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 17 +++++++++++------ - 2 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -index 306f757..50672bb 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -@@ -496,6 +496,7 @@ struct amdgpu_bo_va_mapping { - - /* bo virtual addresses in a specific vm */ - struct amdgpu_bo_va { -+ struct mutex mutex; - /* protected by bo being reserved */ - struct list_head bo_list; - struct fence *last_pt_update; -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -index 159ce54..d6904ef 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -@@ -922,8 +922,9 @@ int amdgpu_vm_clear_invalids(struct amdgpu_device *adev, - bo_va = list_first_entry(&vm->invalidated, - struct amdgpu_bo_va, vm_status); - spin_unlock(&vm->status_lock); -- -+ mutex_lock(&bo_va->mutex); - r = amdgpu_vm_bo_update(adev, bo_va, NULL); -+ mutex_unlock(&bo_va->mutex); - if (r) - return r; - -@@ -967,7 +968,7 @@ struct amdgpu_bo_va *amdgpu_vm_bo_add(struct amdgpu_device *adev, - INIT_LIST_HEAD(&bo_va->valids); - INIT_LIST_HEAD(&bo_va->invalids); - INIT_LIST_HEAD(&bo_va->vm_status); -- -+ mutex_init(&bo_va->mutex); - list_add_tail(&bo_va->bo_list, &bo->va); - - return bo_va; -@@ -1045,7 +1046,9 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev, - mapping->offset = offset; - mapping->flags = flags; - -+ mutex_lock(&bo_va->mutex); - list_add(&mapping->list, &bo_va->invalids); -+ mutex_unlock(&bo_va->mutex); - spin_lock(&vm->it_lock); - interval_tree_insert(&mapping->it, &vm->va); - spin_unlock(&vm->it_lock); -@@ -1121,7 +1124,7 @@ int amdgpu_vm_bo_unmap(struct amdgpu_device *adev, - bool valid = true; - - saddr /= AMDGPU_GPU_PAGE_SIZE; -- -+ mutex_lock(&bo_va->mutex); - list_for_each_entry(mapping, &bo_va->valids, list) { - if (mapping->it.start == saddr) - break; -@@ -1135,10 +1138,12 @@ int amdgpu_vm_bo_unmap(struct amdgpu_device *adev, - break; - } - -- if (&mapping->list == &bo_va->invalids) -+ if (&mapping->list == &bo_va->invalids) { -+ mutex_unlock(&bo_va->mutex); - return -ENOENT; -+ } - } -- -+ mutex_unlock(&bo_va->mutex); - list_del(&mapping->list); - spin_lock(&vm->it_lock); - interval_tree_remove(&mapping->it, &vm->va); -@@ -1190,8 +1195,8 @@ void amdgpu_vm_bo_rmv(struct amdgpu_device *adev, - spin_unlock(&vm->it_lock); - kfree(mapping); - } -- - fence_put(bo_va->last_pt_update); -+ mutex_destroy(&bo_va->mutex); - kfree(bo_va); - } - --- -1.9.1 - |