diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0397-drm-amdgpu-RCU-protected-amd_sched_fence_release.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0397-drm-amdgpu-RCU-protected-amd_sched_fence_release.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/common/recipes-kernel/linux/files/0397-drm-amdgpu-RCU-protected-amd_sched_fence_release.patch b/common/recipes-kernel/linux/files/0397-drm-amdgpu-RCU-protected-amd_sched_fence_release.patch deleted file mode 100644 index 38fe782e..00000000 --- a/common/recipes-kernel/linux/files/0397-drm-amdgpu-RCU-protected-amd_sched_fence_release.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b21fc40ce5fbde04cca84b5a635e5ffbcae6ba80 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> -Date: Tue, 15 Mar 2016 13:58:14 +0100 -Subject: [PATCH 0397/1110] drm/amdgpu: RCU protected amd_sched_fence_release -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fences must be freed RCU protected, otherwise the reservation_object_*_rcu() -functions can run into problems. - -Signed-off-by: Christian König <christian.koenig@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/scheduler/sched_fence.c | 23 ++++++++++++++++++++++- - 1 file changed, 22 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/amd/scheduler/sched_fence.c b/drivers/gpu/drm/amd/scheduler/sched_fence.c -index 87c78ee..dc115ae 100644 ---- a/drivers/gpu/drm/amd/scheduler/sched_fence.c -+++ b/drivers/gpu/drm/amd/scheduler/sched_fence.c -@@ -84,12 +84,33 @@ static bool amd_sched_fence_enable_signaling(struct fence *f) - return true; - } - --static void amd_sched_fence_release(struct fence *f) -+/** -+ * amd_sched_fence_free - free up the fence memory -+ * -+ * @rcu: RCU callback head -+ * -+ * Free up the fence memory after the RCU grace period. -+ */ -+static void amd_sched_fence_free(struct rcu_head *rcu) - { -+ struct fence *f = container_of(rcu, struct fence, rcu); - struct amd_sched_fence *fence = to_amd_sched_fence(f); - kmem_cache_free(sched_fence_slab, fence); - } - -+/** -+ * amd_sched_fence_release - callback that fence can be freed -+ * -+ * @fence: fence -+ * -+ * This function is called when the reference count becomes zero. -+ * It just RCU schedules freeing up the fence. -+ */ -+static void amd_sched_fence_release(struct fence *f) -+{ -+ call_rcu(&f->rcu, amd_sched_fence_free); -+} -+ - const struct fence_ops amd_sched_fence_ops = { - .get_driver_name = amd_sched_fence_get_driver_name, - .get_timeline_name = amd_sched_fence_get_timeline_name, --- -2.7.4 - |