aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch')
-rw-r--r--common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch b/common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch
deleted file mode 100644
index 8b7616bd..00000000
--- a/common/recipes-kernel/linux/files/0705-drm-amdgpu-fix-VM-page-table-reference-counting.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 82b9c55b1edfcb87f5568add56bc7313f5893b60 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Fri, 27 Nov 2015 16:49:00 +0100
-Subject: [PATCH 0705/1565] drm/amdgpu: fix VM page table reference counting
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We use the reservation object of the page directory for the page tables as
-well, because of this the page directory should be freed last. Ensure that
-by keeping a reference from the page tables to the directory.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++++
- 3 files changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 251b147..670fefb 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -539,6 +539,7 @@ struct amdgpu_bo {
- /* Constant after initialization */
- struct amdgpu_device *adev;
- struct drm_gem_object gem_base;
-+ struct amdgpu_bo *parent;
-
- struct ttm_bo_kmap_obj dma_buf_vmap;
- pid_t pid;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
-index 0d52438..c3ce103 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
-@@ -100,6 +100,7 @@ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
- list_del_init(&bo->list);
- mutex_unlock(&bo->adev->gem.mutex);
- drm_gem_object_release(&bo->gem_base);
-+ amdgpu_bo_unref(&bo->parent);
- kfree(bo->metadata);
- kfree(bo);
- }
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-index ae037e5..a582ef5 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -1079,6 +1079,11 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
- if (r)
- goto error_free;
-
-+ /* Keep a reference to the page table to avoid freeing
-+ * them up in the wrong order.
-+ */
-+ pt->parent = amdgpu_bo_ref(vm->page_directory);
-+
- r = amdgpu_vm_clear_bo(adev, pt);
- if (r) {
- amdgpu_bo_unref(&pt);
---
-1.9.1
-