For consistency with other reference counting APIs in the kernel, introduce drm_global_item_{get/put} functions instead of drm_global_item_{ref/unref}. Compatibility aliases are added to keep existing code working. The semantic patch scripts/coccinelle/api/drm-get-put.cocci has been extended to account for the new helpers. Signed-off-by: Haneen Mohammed <hamohammed.sa@xxxxxxxxx> --- drivers/gpu/drm/drm_global.c | 43 +++++++++++++++++++++++++++----- include/drm/drm_global.h | 2 ++ scripts/coccinelle/api/drm-get-put.cocci | 10 ++++++++ 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c index b2dc21e..76cf948 100644 --- a/drivers/gpu/drm/drm_global.c +++ b/drivers/gpu/drm/drm_global.c @@ -64,7 +64,7 @@ void drm_global_release(void) } /** - * drm_global_item_ref - Initialize and acquire reference to memory + * drm_global_item_get - Initialize and acquire reference to memory * object * @ref: Object for initialization * @@ -75,7 +75,7 @@ void drm_global_release(void) * Returns: * Zero on success, non-zero otherwise. */ -int drm_global_item_ref(struct drm_global_reference *ref) +int drm_global_item_get(struct drm_global_reference *ref) { int ret = 0; struct drm_global_item *item = &glob[ref->global_type]; @@ -107,10 +107,10 @@ int drm_global_item_ref(struct drm_global_reference *ref) mutex_unlock(&item->mutex); return ret; } -EXPORT_SYMBOL(drm_global_item_ref); +EXPORT_SYMBOL(drm_global_item_get); /** - * drm_global_item_unref - Drop reference to memory + * drm_global_item_put - Drop reference to memory * object * @ref: Object being removed * @@ -120,7 +120,7 @@ EXPORT_SYMBOL(drm_global_item_ref); * */ -void drm_global_item_unref(struct drm_global_reference *ref) +void drm_global_item_put(struct drm_global_reference *ref) { struct drm_global_item *item = &glob[ref->global_type]; @@ -133,5 +133,36 @@ void drm_global_item_unref(struct drm_global_reference *ref) } mutex_unlock(&item->mutex); } -EXPORT_SYMBOL(drm_global_item_unref); +EXPORT_SYMBOL(drm_global_item_put); +/** + * drm_global_item_ref - Initialize and acquire reference to memory + * object + * @ref: Object for initialization + * + * This is a compatibility alias for drm_global_item_get() and should + * not be used by new code. + * + * Returns: + * Zero on success, non-zero otherwise. + */ +int drm_global_item_ref(struct drm_global_reference *ref) +{ + return drm_global_item_get(ref); +} +EXPORT_SYMBOL(drm_global_item_ref); + +/** + * drm_global_item_unref - Drop reference to memory + * object + * @ref: Object being removed + * + * This is a compatibility alias for drm_global_item_get() and should not + * be used by new code. + */ + +void drm_global_item_unref(struct drm_global_reference *ref) +{ + drm_global_item_put(ref); +} +EXPORT_SYMBOL(drm_global_item_unref); diff --git a/include/drm/drm_global.h b/include/drm/drm_global.h index 3a83060..5eb6f0c 100644 --- a/include/drm/drm_global.h +++ b/include/drm/drm_global.h @@ -47,6 +47,8 @@ struct drm_global_reference { void drm_global_init(void); void drm_global_release(void); +int drm_global_item_get(struct drm_global_reference *ref); +void drm_global_item_put(struct drm_global_reference *ref); int drm_global_item_ref(struct drm_global_reference *ref); void drm_global_item_unref(struct drm_global_reference *ref); diff --git a/scripts/coccinelle/api/drm-get-put.cocci b/scripts/coccinelle/api/drm-get-put.cocci index 91fceb8..db1c465 100644 --- a/scripts/coccinelle/api/drm-get-put.cocci +++ b/scripts/coccinelle/api/drm-get-put.cocci @@ -54,6 +54,12 @@ expression object; | - drm_dev_unref(object) + drm_dev_put(object) +| +- drm_global_item_ref(object) ++ drm_global_item_get(object) +| +- drm_global_item_unref(object) ++ drm_global_item_put(object) ) @r depends on report@ @@ -87,6 +93,10 @@ drm_property_unreference_blob@p(object) drm_property_reference_blob@p(object) | drm_dev_unref@p(object) +| +drm_global_item_ref@p(object) +| +drm_global_item_unref@p(object) ) @script:python depends on report@ -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel