forked from luck/tmp_suning_uos_patched
drm/gem: fold drm_gem_object_put_unlocked and __drm_gem_object_put()
With earlier patch we removed the overhead so now we can lift the helper into the header effectively folding it with __drm_object_put. v2: drop struct_mutex references (Daniel) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> (v1) Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20200515095118.2743122-11-emil.l.velikov@gmail.com
This commit is contained in:
parent
1a9458aeb8
commit
b5d250744c
|
@ -982,25 +982,6 @@ drm_gem_object_free(struct kref *kref)
|
|||
}
|
||||
EXPORT_SYMBOL(drm_gem_object_free);
|
||||
|
||||
/**
|
||||
* drm_gem_object_put_unlocked - drop a GEM buffer object reference
|
||||
* @obj: GEM buffer object
|
||||
*
|
||||
* This releases a reference to @obj. Callers must not hold the
|
||||
* &drm_device.struct_mutex lock when calling this function.
|
||||
*
|
||||
* See also __drm_gem_object_put().
|
||||
*/
|
||||
void
|
||||
drm_gem_object_put_unlocked(struct drm_gem_object *obj)
|
||||
{
|
||||
if (!obj)
|
||||
return;
|
||||
|
||||
kref_put(&obj->refcount, drm_gem_object_free);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_gem_object_put_unlocked);
|
||||
|
||||
/**
|
||||
* drm_gem_object_put - release a GEM buffer object reference
|
||||
* @obj: GEM buffer object
|
||||
|
|
|
@ -105,7 +105,7 @@ __attribute__((nonnull))
|
|||
static inline void
|
||||
i915_gem_object_put(struct drm_i915_gem_object *obj)
|
||||
{
|
||||
__drm_gem_object_put(&obj->base);
|
||||
drm_gem_object_put_unlocked(&obj->base);
|
||||
}
|
||||
|
||||
#define assert_object_held(obj) dma_resv_assert_held((obj)->base.resv)
|
||||
|
|
|
@ -332,8 +332,6 @@ struct drm_driver {
|
|||
*
|
||||
* This is deprecated and should not be used by new drivers. Use
|
||||
* &drm_gem_object_funcs.free instead.
|
||||
* Compared to @gem_free_object this is not encumbered with
|
||||
* &drm_device.struct_mutex legacy locking schemes.
|
||||
*/
|
||||
void (*gem_free_object_unlocked) (struct drm_gem_object *obj);
|
||||
|
||||
|
|
|
@ -364,27 +364,17 @@ static inline void drm_gem_object_get(struct drm_gem_object *obj)
|
|||
}
|
||||
|
||||
/**
|
||||
* __drm_gem_object_put - raw function to release a GEM buffer object reference
|
||||
* drm_gem_object_put_unlocked - drop a GEM buffer object reference
|
||||
* @obj: GEM buffer object
|
||||
*
|
||||
* This function is meant to be used by drivers which are not encumbered with
|
||||
* &drm_device.struct_mutex legacy locking and which are using the
|
||||
* gem_free_object_unlocked callback. It avoids all the locking checks and
|
||||
* locking overhead of drm_gem_object_put() and drm_gem_object_put_unlocked().
|
||||
*
|
||||
* Drivers should never call this directly in their code. Instead they should
|
||||
* wrap it up into a ``driver_gem_object_put(struct driver_gem_object *obj)``
|
||||
* wrapper function, and use that. Shared code should never call this, to
|
||||
* avoid breaking drivers by accident which still depend upon
|
||||
* &drm_device.struct_mutex locking.
|
||||
* This releases a reference to @obj.
|
||||
*/
|
||||
static inline void
|
||||
__drm_gem_object_put(struct drm_gem_object *obj)
|
||||
drm_gem_object_put_unlocked(struct drm_gem_object *obj)
|
||||
{
|
||||
kref_put(&obj->refcount, drm_gem_object_free);
|
||||
}
|
||||
|
||||
void drm_gem_object_put_unlocked(struct drm_gem_object *obj);
|
||||
void drm_gem_object_put(struct drm_gem_object *obj);
|
||||
|
||||
int drm_gem_handle_create(struct drm_file *file_priv,
|
||||
|
|
Loading…
Reference in New Issue
Block a user