aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch')
-rw-r--r--common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch85
1 files changed, 0 insertions, 85 deletions
diff --git a/common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch b/common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch
deleted file mode 100644
index 76d0addc..00000000
--- a/common/recipes-kernel/linux/files/0673-drm-amdgpu-add-kmem-cache-for-amdgpu-fence.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From b49c84a5765cf68b8e2fdb1dc4eded9c208e6d58 Mon Sep 17 00:00:00 2001
-From: Chunming Zhou <David1.Zhou@amd.com>
-Date: Thu, 5 Nov 2015 11:28:28 +0800
-Subject: [PATCH 0673/1565] drm/amdgpu: add kmem cache for amdgpu fence
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Change-Id: I5ad8dd156ccf27a6f18004aa0a215a0925b6e67b
-Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
-Reviewed-by: Christian König <christian.koenig@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 22 ++++++++++++++++++++--
- 1 file changed, 20 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-index 257fce3..3671f9f 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
-@@ -47,6 +47,9 @@
- * that the the relevant GPU caches have been flushed.
- */
-
-+static struct kmem_cache *amdgpu_fence_slab;
-+static atomic_t amdgpu_fence_slab_ref = ATOMIC_INIT(0);
-+
- /**
- * amdgpu_fence_write - write a fence value
- *
-@@ -100,7 +103,7 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, void *owner,
- struct amdgpu_device *adev = ring->adev;
-
- /* we are protected by the ring emission mutex */
-- *fence = kmalloc(sizeof(struct amdgpu_fence), GFP_KERNEL);
-+ *fence = kmem_cache_alloc(amdgpu_fence_slab, GFP_KERNEL);
- if ((*fence) == NULL) {
- return -ENOMEM;
- }
-@@ -522,6 +525,13 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
- */
- int amdgpu_fence_driver_init(struct amdgpu_device *adev)
- {
-+ if (atomic_inc_return(&amdgpu_fence_slab_ref) == 1) {
-+ amdgpu_fence_slab = kmem_cache_create(
-+ "amdgpu_fence", sizeof(struct amdgpu_fence), 0,
-+ SLAB_HWCACHE_ALIGN, NULL);
-+ if (!amdgpu_fence_slab)
-+ return -ENOMEM;
-+ }
- if (amdgpu_debugfs_fence_init(adev))
- dev_err(adev->dev, "fence debugfs file creation failed\n");
-
-@@ -540,6 +550,8 @@ void amdgpu_fence_driver_fini(struct amdgpu_device *adev)
- {
- int i, r;
-
-+ if (atomic_dec_and_test(&amdgpu_fence_slab_ref))
-+ kmem_cache_destroy(amdgpu_fence_slab);
- mutex_lock(&adev->ring_lock);
- for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
- struct amdgpu_ring *ring = adev->rings[i];
-@@ -745,13 +757,19 @@ static bool amdgpu_fence_enable_signaling(struct fence *f)
- return true;
- }
-
-+static void amdgpu_fence_release(struct fence *f)
-+{
-+ struct amdgpu_fence *fence = to_amdgpu_fence(f);
-+ kmem_cache_free(amdgpu_fence_slab, fence);
-+}
-+
- const struct fence_ops amdgpu_fence_ops = {
- .get_driver_name = amdgpu_fence_get_driver_name,
- .get_timeline_name = amdgpu_fence_get_timeline_name,
- .enable_signaling = amdgpu_fence_enable_signaling,
- .signaled = amdgpu_fence_is_signaled,
- .wait = fence_default_wait,
-- .release = NULL,
-+ .release = amdgpu_fence_release,
- };
-
- /*
---
-1.9.1
-