aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch')
-rw-r--r--common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch59
1 files changed, 0 insertions, 59 deletions
diff --git a/common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch b/common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch
deleted file mode 100644
index fc3e54aa..00000000
--- a/common/recipes-kernel/linux/files/0396-drm-amdgpu-RCU-protected-amdgpu_fence_release.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 352824dfbfbff5328210e72402abe1a934113ce0 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:40:17 +0100
-Subject: [PATCH 0396/1110] drm/amdgpu: RCU protected amdgpu_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/amdgpu/amdgpu_fence.c | 23 ++++++++++++++++++++++-
- 1 file changed, 22 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-index d8bbe85..ec73ab1 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-@@ -638,12 +638,33 @@ static bool amdgpu_fence_enable_signaling(struct fence *f)
- return true;
- }
-
--static void amdgpu_fence_release(struct fence *f)
-+/**
-+ * amdgpu_fence_free - free up the fence memory
-+ *
-+ * @rcu: RCU callback head
-+ *
-+ * Free up the fence memory after the RCU grace period.
-+ */
-+static void amdgpu_fence_free(struct rcu_head *rcu)
- {
-+ struct fence *f = container_of(rcu, struct fence, rcu);
- struct amdgpu_fence *fence = to_amdgpu_fence(f);
- kmem_cache_free(amdgpu_fence_slab, fence);
- }
-
-+/**
-+ * amdgpu_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 amdgpu_fence_release(struct fence *f)
-+{
-+ call_rcu(&f->rcu, amdgpu_fence_free);
-+}
-+
- static const struct fence_ops amdgpu_fence_ops = {
- .get_driver_name = amdgpu_fence_get_driver_name,
- .get_timeline_name = amdgpu_fence_get_timeline_name,
---
-2.7.4
-