Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/gem: add _locked suffix to drm_gem_object_put

Vast majority of DRM (core and drivers) are struct_mutex free.

As such we have only a handful of cases where the locked helper should
be used. Make that stand out a little bit better.

Done via the following script:

__from=drm_gem_object_put
__to=drm_gem_object_put_locked

for __file in $(git grep --name-only --word-regexp $__from); do
sed -i "s/\<$__from\>/$__to/g" $__file;
done

Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: linux-arm-msm@vger.kernel.org
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Steven Price <steven.price@arm.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20200515095118.2743122-12-emil.l.velikov@gmail.com

authored by

Emil Velikov and committed by
Emil Velikov
eecd7fd8 b5d25074

+13 -13
+3 -3
drivers/gpu/drm/drm_gem.c
··· 983 983 EXPORT_SYMBOL(drm_gem_object_free); 984 984 985 985 /** 986 - * drm_gem_object_put - release a GEM buffer object reference 986 + * drm_gem_object_put_locked - release a GEM buffer object reference 987 987 * @obj: GEM buffer object 988 988 * 989 989 * This releases a reference to @obj. Callers must hold the ··· 994 994 * drm_gem_object_put_unlocked() instead. 995 995 */ 996 996 void 997 - drm_gem_object_put(struct drm_gem_object *obj) 997 + drm_gem_object_put_locked(struct drm_gem_object *obj) 998 998 { 999 999 if (obj) { 1000 1000 WARN_ON(!mutex_is_locked(&obj->dev->struct_mutex)); ··· 1002 1002 kref_put(&obj->refcount, drm_gem_object_free); 1003 1003 } 1004 1004 } 1005 - EXPORT_SYMBOL(drm_gem_object_put); 1005 + EXPORT_SYMBOL(drm_gem_object_put_locked); 1006 1006 1007 1007 /** 1008 1008 * drm_gem_vm_open - vma->ops->open implementation for GEM
+2 -2
drivers/gpu/drm/msm/adreno/a5xx_debugfs.c
··· 124 124 125 125 if (a5xx_gpu->pm4_bo) { 126 126 msm_gem_unpin_iova(a5xx_gpu->pm4_bo, gpu->aspace); 127 - drm_gem_object_put(a5xx_gpu->pm4_bo); 127 + drm_gem_object_put_locked(a5xx_gpu->pm4_bo); 128 128 a5xx_gpu->pm4_bo = NULL; 129 129 } 130 130 131 131 if (a5xx_gpu->pfp_bo) { 132 132 msm_gem_unpin_iova(a5xx_gpu->pfp_bo, gpu->aspace); 133 - drm_gem_object_put(a5xx_gpu->pfp_bo); 133 + drm_gem_object_put_locked(a5xx_gpu->pfp_bo); 134 134 a5xx_gpu->pfp_bo = NULL; 135 135 } 136 136
+1 -1
drivers/gpu/drm/msm/msm_drv.c
··· 932 932 ret = 0; 933 933 } 934 934 935 - drm_gem_object_put(obj); 935 + drm_gem_object_put_locked(obj); 936 936 937 937 unlock: 938 938 mutex_unlock(&dev->struct_mutex);
+3 -3
drivers/gpu/drm/msm/msm_gem.c
··· 879 879 } 880 880 #endif 881 881 882 - /* don't call directly! Use drm_gem_object_put() and friends */ 882 + /* don't call directly! Use drm_gem_object_put_locked() and friends */ 883 883 void msm_gem_free_object(struct drm_gem_object *obj) 884 884 { 885 885 struct msm_gem_object *msm_obj = to_msm_bo(obj); ··· 1183 1183 return vaddr; 1184 1184 err: 1185 1185 if (locked) 1186 - drm_gem_object_put(obj); 1186 + drm_gem_object_put_locked(obj); 1187 1187 else 1188 1188 drm_gem_object_put_unlocked(obj); 1189 1189 ··· 1215 1215 msm_gem_unpin_iova(bo, aspace); 1216 1216 1217 1217 if (locked) 1218 - drm_gem_object_put(bo); 1218 + drm_gem_object_put_locked(bo); 1219 1219 else 1220 1220 drm_gem_object_put_unlocked(bo); 1221 1221 }
+1 -1
drivers/gpu/drm/msm/msm_gem_submit.c
··· 387 387 struct msm_gem_object *msm_obj = submit->bos[i].obj; 388 388 submit_unlock_unpin_bo(submit, i, false); 389 389 list_del_init(&msm_obj->submit_entry); 390 - drm_gem_object_put(&msm_obj->base); 390 + drm_gem_object_put_locked(&msm_obj->base); 391 391 } 392 392 } 393 393
+1 -1
drivers/gpu/drm/msm/msm_gpu.c
··· 694 694 /* move to inactive: */ 695 695 msm_gem_move_to_inactive(&msm_obj->base); 696 696 msm_gem_unpin_iova(&msm_obj->base, submit->aspace); 697 - drm_gem_object_put(&msm_obj->base); 697 + drm_gem_object_put_locked(&msm_obj->base); 698 698 } 699 699 700 700 pm_runtime_mark_last_busy(&gpu->pdev->dev);
+2 -2
include/drm/drm_gem.h
··· 187 187 * 188 188 * Reference count of this object 189 189 * 190 - * Please use drm_gem_object_get() to acquire and drm_gem_object_put() 190 + * Please use drm_gem_object_get() to acquire and drm_gem_object_put_locked() 191 191 * or drm_gem_object_put_unlocked() to release a reference to a GEM 192 192 * buffer object. 193 193 */ ··· 375 375 kref_put(&obj->refcount, drm_gem_object_free); 376 376 } 377 377 378 - void drm_gem_object_put(struct drm_gem_object *obj); 378 + void drm_gem_object_put_locked(struct drm_gem_object *obj); 379 379 380 380 int drm_gem_handle_create(struct drm_file *file_priv, 381 381 struct drm_gem_object *obj,