aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0700-drm-amdgpu-add-mutex-for-ba_va-valids-invalids.patch
diff options
context:
space:
mode:
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.patch98
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
-