aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch
new file mode 100644
index 00000000..383d6ca0
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5030-drm-amdgpu-nuke-amdgpu_bo_list_free.patch
@@ -0,0 +1,80 @@
+From 52957e45f0e65c0cc177750b9ba2b1254a47b6a1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Mon, 30 Jul 2018 14:17:41 +0200
+Subject: [PATCH 5030/5725] drm/amdgpu: nuke amdgpu_bo_list_free
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The RCU grace period is harmless and avoiding it is not worth the effort
+of doubling the implementation.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+Reviewed-by: Huang Rui <ray.huang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 13 +------------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 1 -
+ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +-
+ 3 files changed, 2 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+index f0d85a2..ee09c2d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+@@ -230,17 +230,6 @@ void amdgpu_bo_list_put(struct amdgpu_bo_list *list)
+ kref_put(&list->refcount, amdgpu_bo_list_release_rcu);
+ }
+
+-void amdgpu_bo_list_free(struct amdgpu_bo_list *list)
+-{
+- unsigned i;
+-
+- for (i = 0; i < list->num_entries; ++i)
+- amdgpu_bo_unref(&list->array[i].robj);
+-
+- kvfree(list->array);
+- kfree(list);
+-}
+-
+ int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in,
+ struct drm_amdgpu_bo_list_entry **info_param)
+ {
+@@ -309,7 +298,7 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
+ r = idr_alloc(&fpriv->bo_list_handles, list, 1, 0, GFP_KERNEL);
+ mutex_unlock(&fpriv->bo_list_lock);
+ if (r < 0) {
+- amdgpu_bo_list_free(list);
++ amdgpu_bo_list_put(list);
+ return r;
+ }
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
+index 89195fd..0ce5402 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
+@@ -56,7 +56,6 @@ int amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id,
+ void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list,
+ struct list_head *validated);
+ void amdgpu_bo_list_put(struct amdgpu_bo_list *list);
+-void amdgpu_bo_list_free(struct amdgpu_bo_list *list);
+ int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in,
+ struct drm_amdgpu_bo_list_entry **info_param);
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+index be1770d..58158b0 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+@@ -1001,7 +1001,7 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
+ amdgpu_bo_unref(&pd);
+
+ idr_for_each_entry(&fpriv->bo_list_handles, list, handle)
+- amdgpu_bo_list_free(list);
++ amdgpu_bo_list_put(list);
+
+ idr_destroy(&fpriv->bo_list_handles);
+ mutex_destroy(&fpriv->bo_list_lock);
+--
+2.7.4
+