OSDN Git Service

drm/amdgpu: nuke amdgpu_bo_list_free
authorChristian König <christian.koenig@amd.com>
Mon, 30 Jul 2018 12:17:41 +0000 (14:17 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 31 Jul 2018 21:58:18 +0000 (16:58 -0500)
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
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

index 556040e..5335f1b 100644 (file)
@@ -231,17 +231,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)
 {
@@ -310,7 +299,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;
                }
 
index 89195fd..0ce5402 100644 (file)
@@ -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);
 
index dd2132f..bd98cc5 100644 (file)
@@ -967,7 +967,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);