aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-07-30 08:17:41 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-07-31 17:58:18 -0400
commita0f208453b97565dab8c334ff013aa5ab3c66d0c (patch)
treecc476bf48d6d286d729c807c677a4ad449b0fb6d /drivers/gpu/drm/amd
parent81c6dabcc990c341793368db985ee8aca5713b16 (diff)
drm/amdgpu: nuke amdgpu_bo_list_free
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>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c13
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c2
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 556040e45931..5335f1b5459f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
@@ -231,17 +231,6 @@ void amdgpu_bo_list_put(struct amdgpu_bo_list *list)
231 kref_put(&list->refcount, amdgpu_bo_list_release_rcu); 231 kref_put(&list->refcount, amdgpu_bo_list_release_rcu);
232} 232}
233 233
234void amdgpu_bo_list_free(struct amdgpu_bo_list *list)
235{
236 unsigned i;
237
238 for (i = 0; i < list->num_entries; ++i)
239 amdgpu_bo_unref(&list->array[i].robj);
240
241 kvfree(list->array);
242 kfree(list);
243}
244
245int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in, 234int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in,
246 struct drm_amdgpu_bo_list_entry **info_param) 235 struct drm_amdgpu_bo_list_entry **info_param)
247{ 236{
@@ -310,7 +299,7 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
310 r = idr_alloc(&fpriv->bo_list_handles, list, 1, 0, GFP_KERNEL); 299 r = idr_alloc(&fpriv->bo_list_handles, list, 1, 0, GFP_KERNEL);
311 mutex_unlock(&fpriv->bo_list_lock); 300 mutex_unlock(&fpriv->bo_list_lock);
312 if (r < 0) { 301 if (r < 0) {
313 amdgpu_bo_list_free(list); 302 amdgpu_bo_list_put(list);
314 return r; 303 return r;
315 } 304 }
316 305
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
index 89195fdcb1ef..0ce540203db1 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,
56void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list, 56void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list,
57 struct list_head *validated); 57 struct list_head *validated);
58void amdgpu_bo_list_put(struct amdgpu_bo_list *list); 58void amdgpu_bo_list_put(struct amdgpu_bo_list *list);
59void amdgpu_bo_list_free(struct amdgpu_bo_list *list);
60int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in, 59int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in,
61 struct drm_amdgpu_bo_list_entry **info_param); 60 struct drm_amdgpu_bo_list_entry **info_param);
62 61
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index dd2132fa2b89..bd98cc5fb97b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -967,7 +967,7 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
967 amdgpu_bo_unref(&pd); 967 amdgpu_bo_unref(&pd);
968 968
969 idr_for_each_entry(&fpriv->bo_list_handles, list, handle) 969 idr_for_each_entry(&fpriv->bo_list_handles, list, handle)
970 amdgpu_bo_list_free(list); 970 amdgpu_bo_list_put(list);
971 971
972 idr_destroy(&fpriv->bo_list_handles); 972 idr_destroy(&fpriv->bo_list_handles);
973 mutex_destroy(&fpriv->bo_list_lock); 973 mutex_destroy(&fpriv->bo_list_lock);