diff options
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.patch | 80 |
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 + |