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

drm: remove drm_driver::gem_free_object

No drivers set the callback, so remove it all together.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20200515095118.2743122-10-emil.l.velikov@gmail.com

authored by

Emil Velikov and committed by
Emil Velikov
1a9458ae 00c47f56

+6 -29
+3 -19
drivers/gpu/drm/drm_gem.c
··· 975 975 container_of(kref, struct drm_gem_object, refcount); 976 976 struct drm_device *dev = obj->dev; 977 977 978 - if (obj->funcs) { 978 + if (obj->funcs) 979 979 obj->funcs->free(obj); 980 - } else if (dev->driver->gem_free_object_unlocked) { 980 + else if (dev->driver->gem_free_object_unlocked) 981 981 dev->driver->gem_free_object_unlocked(obj); 982 - } else if (dev->driver->gem_free_object) { 983 - WARN_ON(!mutex_is_locked(&dev->struct_mutex)); 984 - 985 - dev->driver->gem_free_object(obj); 986 - } 987 982 } 988 983 EXPORT_SYMBOL(drm_gem_object_free); 989 984 ··· 994 999 void 995 1000 drm_gem_object_put_unlocked(struct drm_gem_object *obj) 996 1001 { 997 - struct drm_device *dev; 998 - 999 1002 if (!obj) 1000 1003 return; 1001 1004 1002 - dev = obj->dev; 1003 - 1004 - if (dev->driver->gem_free_object) { 1005 - might_lock(&dev->struct_mutex); 1006 - if (kref_put_mutex(&obj->refcount, drm_gem_object_free, 1007 - &dev->struct_mutex)) 1008 - mutex_unlock(&dev->struct_mutex); 1009 - } else { 1010 - kref_put(&obj->refcount, drm_gem_object_free); 1011 - } 1005 + kref_put(&obj->refcount, drm_gem_object_free); 1012 1006 } 1013 1007 EXPORT_SYMBOL(drm_gem_object_put_unlocked); 1014 1008
-8
include/drm/drm_drv.h
··· 328 328 void (*debugfs_init)(struct drm_minor *minor); 329 329 330 330 /** 331 - * @gem_free_object: deconstructor for drm_gem_objects 332 - * 333 - * This is deprecated and should not be used by new drivers. Use 334 - * &drm_gem_object_funcs.free instead. 335 - */ 336 - void (*gem_free_object) (struct drm_gem_object *obj); 337 - 338 - /** 339 331 * @gem_free_object_unlocked: deconstructor for drm_gem_objects 340 332 * 341 333 * This is deprecated and should not be used by new drivers. Use
+3 -2
include/drm/drm_gem.h
··· 272 272 * attachment point for the device. This is invariant over the lifetime 273 273 * of a gem object. 274 274 * 275 - * The &drm_driver.gem_free_object callback is responsible for cleaning 276 - * up the dma_buf attachment and references acquired at import time. 275 + * The &drm_driver.gem_free_object_unlocked callback is responsible for 276 + * cleaning up the dma_buf attachment and references acquired at import 277 + * time. 277 278 * 278 279 * Note that the drm gem/prime core does not depend upon drivers setting 279 280 * this field any more. So for drivers where this doesn't make sense