drm: Introduce drm_mode_object_{get,put}()

For consistency with other reference counting APIs in the kernel, add
drm_mode_object_get() and drm_mode_object_put() to reference count DRM
mode objects.

Compatibility aliases are added to keep existing code working. To help
speed up the transition, all the instances of the old functions in the
DRM core are already replaced in this commit.

A semantic patch is provided that can be used to convert all drivers to
the new helpers.

Reviewed-by: Sean Paul <seanpaul@chromium.org>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170228144643.5668-3-thierry.reding@gmail.com
This commit is contained in:
Thierry Reding
2017-02-28 15:46:38 +01:00
parent 2135ea7aaf
commit 020a218f95
5 changed files with 95 additions and 29 deletions

View File

@@ -0,0 +1,42 @@
///
/// Use drm_*_get() and drm_*_put() helpers instead of drm_*_reference() and
/// drm_*_unreference() helpers.
///
// Confidence: High
// Copyright: (C) 2017 NVIDIA Corporation
// Options: --no-includes --include-headers
//
virtual patch
virtual report
@depends on patch@
expression object;
@@
(
- drm_mode_object_reference(object)
+ drm_mode_object_get(object)
|
- drm_mode_object_unreference(object)
+ drm_mode_object_put(object)
)
@r depends on report@
expression object;
position p;
@@
(
drm_mode_object_unreference@p(object)
|
drm_mode_object_reference@p(object)
)
@script:python depends on report@
object << r.object;
p << r.p;
@@
msg="WARNING: use get/put helpers to reference and dereference %s" % (object)
coccilib.report.print_report(p[0], msg)