aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/files/0454-drm-amdgpu-remove-scheduler-fence-list-v2.patch
blob: 4a104d1915d2595f02176a483038551778a2a228 (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
91
92
From 5b232c2a717684d0dffc27e50bf05e1fb72f9d6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
Date: Mon, 10 Aug 2015 14:16:24 +0200
Subject: [PATCH 0454/1050] drm/amdgpu: remove scheduler fence list v2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Unused and missing proper locking.

v2: add locking comment to commit message.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com> (v1)
---
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.c |  1 -
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.h |  2 --
 drivers/gpu/drm/amd/scheduler/sched_fence.c   | 19 +------------------
 3 files changed, 1 insertion(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 90abefe..39577f6 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -195,7 +195,6 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched,
 	entity->fence_context = fence_context_alloc(1);
 	snprintf(name, sizeof(name), "c_entity[%llu]", entity->fence_context);
 	memcpy(entity->name, name, 20);
-	INIT_LIST_HEAD(&entity->fence_list);
 	if(kfifo_alloc(&entity->job_queue,
 		       jobs * sizeof(void *),
 		       GFP_KERNEL))
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index aa94203..5e35018 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -53,7 +53,6 @@ struct amd_sched_entity {
 	wait_queue_head_t		wait_emit;
 	bool                            is_pending;
 	uint64_t                        fence_context;
-	struct list_head		fence_list;
 	char                            name[20];
 };
 
@@ -78,7 +77,6 @@ struct amd_run_queue {
 struct amd_sched_fence {
 	struct fence                    base;
 	struct fence_cb                 cb;
-	struct list_head		list;
 	struct amd_sched_entity	        *entity;
 	uint64_t			v_seq;
 	spinlock_t			lock;
diff --git a/drivers/gpu/drm/amd/scheduler/sched_fence.c b/drivers/gpu/drm/amd/scheduler/sched_fence.c
index 8ee77ed..a475159 100644
--- a/drivers/gpu/drm/amd/scheduler/sched_fence.c
+++ b/drivers/gpu/drm/amd/scheduler/sched_fence.c
@@ -27,16 +27,7 @@
 #include <drm/drmP.h>
 #include "gpu_scheduler.h"
 
-static void amd_sched_fence_wait_cb(struct fence *f, struct fence_cb *cb)
-{
-	struct amd_sched_fence *fence =
-		container_of(cb, struct amd_sched_fence, cb);
-	list_del_init(&fence->list);
-	fence_put(&fence->base);
-}
-
-struct amd_sched_fence *amd_sched_fence_create(
-	struct amd_sched_entity *s_entity)
+struct amd_sched_fence *amd_sched_fence_create(struct amd_sched_entity *s_entity)
 {
 	struct amd_sched_fence *fence = NULL;
 	fence = kzalloc(sizeof(struct amd_sched_fence), GFP_KERNEL);
@@ -49,14 +40,6 @@ struct amd_sched_fence *amd_sched_fence_create(
 		&fence->lock,
 		s_entity->fence_context,
 		fence->v_seq);
-	fence_get(&fence->base);
-	list_add_tail(&fence->list, &s_entity->fence_list);
-	if (fence_add_callback(&fence->base,&fence->cb,
-			       amd_sched_fence_wait_cb)) {
-		fence_put(&fence->base);
-		kfree(fence);
-		return NULL;
-	}
 	return fence;
 }
 
-- 
1.9.1