aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch102
1 files changed, 102 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch
new file mode 100644
index 00000000..2f13ec89
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2136-drm-amdgpu-inline-__map_bo_to_kernel.patch
@@ -0,0 +1,102 @@
+From b63242ed2396483f29fe9befc25666c43ad04536 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Tue, 31 Oct 2017 13:21:49 -0400
+Subject: [PATCH 2136/4131] drm/amdgpu: inline __map_bo_to_kernel
+
+This function is only called from one place, so inline it there. This
+makes the next change easier.
+
+Change-Id: I28c6cd6cc68b09521a6a332d830c2b9abe2a995a
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 66 +++++++++++-------------
+ 1 file changed, 29 insertions(+), 37 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+index 39b71cd..8deb247 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+@@ -625,40 +625,6 @@ static int init_user_pages(struct kgd_mem *mem, struct mm_struct *mm,
+ return ret;
+ }
+
+-static int __map_bo_to_kernel(struct amdgpu_bo *bo, u32 domain, void **kptr)
+-{
+- int ret;
+-
+- ret = amdgpu_bo_reserve(bo, true);
+- if (ret) {
+- pr_err("Failed to reserve bo. ret %d\n", ret);
+- return ret;
+- }
+-
+- ret = amdgpu_bo_pin(bo, domain, NULL);
+- if (ret) {
+- pr_err("Failed to pin bo. ret %d\n", ret);
+- goto pin_failed;
+- }
+-
+- ret = amdgpu_bo_kmap(bo, kptr);
+- if (ret) {
+- pr_err("Failed to map bo to kernel. ret %d\n", ret);
+- goto kmap_failed;
+- }
+-
+- amdgpu_bo_unreserve(bo);
+-
+- return ret;
+-
+-kmap_failed:
+- amdgpu_bo_unpin(bo);
+-pin_failed:
+- amdgpu_bo_unreserve(bo);
+-
+- return ret;
+-}
+-
+ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
+ uint64_t size, void *vm, struct kgd_mem **mem,
+ uint64_t *offset, u32 domain, u64 flags,
+@@ -1679,10 +1645,36 @@ int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_dev *kgd,
+
+ list_del_init(&mem->validate_list.head);
+
+- ret = __map_bo_to_kernel(bo, AMDGPU_GEM_DOMAIN_GTT, kptr);
+- if (!ret)
+- mem->kptr = *kptr;
++ ret = amdgpu_bo_reserve(bo, true);
++ if (ret) {
++ pr_err("Failed to reserve bo. ret %d\n", ret);
++ goto bo_reserve_failed;
++ }
++
++ ret = amdgpu_bo_pin(bo, AMDGPU_GEM_DOMAIN_GTT, NULL);
++ if (ret) {
++ pr_err("Failed to pin bo. ret %d\n", ret);
++ goto pin_failed;
++ }
++
++ ret = amdgpu_bo_kmap(bo, kptr);
++ if (ret) {
++ pr_err("Failed to map bo to kernel. ret %d\n", ret);
++ goto kmap_failed;
++ }
+
++ amdgpu_bo_unreserve(bo);
++
++ mem->kptr = *kptr;
++
++ mutex_unlock(&mem->process_info->lock);
++ return 0;
++
++kmap_failed:
++ amdgpu_bo_unpin(bo);
++pin_failed:
++ amdgpu_bo_unreserve(bo);
++bo_reserve_failed:
+ mutex_unlock(&mem->process_info->lock);
+
+ return ret;
+--
+2.7.4
+