// SPDX-License-Identifier: GPL-2.0 /// /// 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_connector_reference(object) + drm_connector_get(object) | - drm_connector_unreference(object) + drm_connector_put(object) | - drm_framebuffer_reference(object) + drm_framebuffer_get(object) | - drm_framebuffer_unreference(object) + drm_framebuffer_put(object) | - drm_gem_object_reference(object) + drm_gem_object_get(object) | - drm_gem_object_unreference(object) + drm_gem_object_put(object) | - __drm_gem_object_unreference(object) + __drm_gem_object_put(object) | - drm_gem_object_unreference_unlocked(object) + drm_gem_object_put_unlocked(object) | - drm_dev_unref(object) + drm_dev_put(object) ) @r depends on report@ expression object; position p; @@ ( drm_connector_unreference@p(object) | drm_connector_reference@p(object) | drm_framebuffer_unreference@p(object) | drm_framebuffer_reference@p(object) | drm_gem_object_unreference@p(object) | drm_gem_object_reference@p(object) | __drm_gem_object_unreference(object) | drm_gem_object_unreference_unlocked(object) | drm_dev_unref@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)