aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch')
-rw-r--r--common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch b/common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch
new file mode 100644
index 00000000..991ce2de
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0228-drm-amdgpu-max_pde_used-usage-should-be-under-protec.patch
@@ -0,0 +1,48 @@
+From 3d5a08c114585e5b9f890807b04d2730dafde5e1 Mon Sep 17 00:00:00 2001
+From: "monk.liu" <monk.liu@amd.com>
+Date: Tue, 26 May 2015 10:22:41 +0800
+Subject: [PATCH 0228/1050] drm/amdgpu: max_pde_used usage should be under
+ protect
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index cc6dca2..dcb2d38 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/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;
+ }
+--
+1.9.1
+