aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2244-drm-amdkfd-Fix-parameter-changes-of-ttm_bo_validate-.patch
blob: d5c62ea5cf5042b3a532a83e39ce49c74a2ab25f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
From a583de0114fc8b48ba417c9b377f586703f7c0f4 Mon Sep 17 00:00:00 2001
From: "Le.Ma" <Le.Ma@amd.com>
Date: Fri, 24 Nov 2017 15:19:16 +0800
Subject: [PATCH 2244/4131] drm/amdkfd: Fix parameter changes of
 ttm_bo_validate for kfd src

Change-Id: I85f7d7aea281fdad11f421109791301ab95157d1
Signed-off-by: Le.Ma <Le.Ma@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index aec0d44..0efe245 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -339,6 +339,7 @@ static void amdgpu_amdkfd_add_eviction_fence(struct amdgpu_bo *bo,
 static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain,
 				     bool wait)
 {
+	struct ttm_operation_ctx ctx = { false, false };
 	int ret;
 
 	if (WARN(amdgpu_ttm_tt_get_usermm(bo->tbo.ttm),
@@ -347,7 +348,7 @@ static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain,
 
 	amdgpu_ttm_placement_from_domain(bo, domain);
 
-	ret = ttm_bo_validate(&bo->tbo, &bo->placement, false, false);
+	ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
 	if (ret)
 		goto validate_fail;
 	if (wait) {
@@ -550,6 +551,7 @@ static int init_user_pages(struct kgd_mem *mem, struct mm_struct *mm,
 {
 	struct amdkfd_process_info *process_info = mem->process_info;
 	struct amdgpu_bo *bo = mem->bo;
+	struct ttm_operation_ctx ctx = { true, false };
 	int ret = 0;
 
 	mutex_lock(&process_info->lock);
@@ -600,8 +602,7 @@ static int init_user_pages(struct kgd_mem *mem, struct mm_struct *mm,
 		goto release_out;
 	}
 	amdgpu_ttm_placement_from_domain(bo, mem->domain);
-	ret = ttm_bo_validate(&bo->tbo, &bo->placement,
-			      true, false);
+	ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
 	if (ret)
 		pr_err("%s: failed to validate BO\n", __func__);
 	amdgpu_bo_unreserve(bo);
@@ -1965,6 +1966,7 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,
 {
 	struct kgd_mem *mem, *tmp_mem;
 	struct amdgpu_bo *bo;
+	struct ttm_operation_ctx ctx = { false, false };
 	int invalid, ret;
 
 	/* Move all invalidated BOs to the userptr_inval_list and
@@ -1981,7 +1983,7 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,
 		if (amdgpu_bo_reserve(bo, true))
 			return -EAGAIN;
 		amdgpu_ttm_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_CPU);
-		ret = ttm_bo_validate(&bo->tbo, &bo->placement, false, false);
+		ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
 		amdgpu_bo_unreserve(bo);
 		if (ret) {
 			pr_err("%s: Failed to invalidate userptr BO\n",
@@ -2068,6 +2070,7 @@ static int validate_invalid_user_pages(struct amdkfd_process_info *process_info)
 	struct amdkfd_vm *peer_vm;
 	struct kgd_mem *mem, *tmp_mem;
 	struct amdgpu_bo *bo;
+	struct ttm_operation_ctx ctx = { false, false };
 	int i, ret;
 
 	pd_bo_list_entries = kcalloc(process_info->n_vms,
@@ -2130,8 +2133,7 @@ static int validate_invalid_user_pages(struct amdkfd_process_info *process_info)
 			amdgpu_ttm_tt_set_user_pages(bo->tbo.ttm,
 						     mem->user_pages);
 			amdgpu_ttm_placement_from_domain(bo, mem->domain);
-			ret = ttm_bo_validate(&bo->tbo, &bo->placement,
-					      false, false);
+			ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
 			if (ret) {
 				pr_err("%s: failed to validate BO\n", __func__);
 				goto unreserve_out;
-- 
2.7.4