1// SPDX-License-Identifier: GPL-2.0 2/// 3/// Use drm_*_get() and drm_*_put() helpers instead of drm_*_reference() and 4/// drm_*_unreference() helpers. 5/// 6// Confidence: High 7// Copyright: (C) 2017 NVIDIA Corporation 8// Options: --no-includes --include-headers 9// 10 11virtual patch 12virtual report 13 14@depends on patch@ 15expression object; 16@@ 17 18( 19- drm_connector_reference(object) 20+ drm_connector_get(object) 21| 22- drm_connector_unreference(object) 23+ drm_connector_put(object) 24| 25- drm_framebuffer_reference(object) 26+ drm_framebuffer_get(object) 27| 28- drm_framebuffer_unreference(object) 29+ drm_framebuffer_put(object) 30| 31- drm_gem_object_reference(object) 32+ drm_gem_object_get(object) 33| 34- drm_gem_object_unreference(object) 35+ drm_gem_object_put(object) 36| 37- __drm_gem_object_unreference(object) 38+ __drm_gem_object_put(object) 39| 40- drm_gem_object_unreference_unlocked(object) 41+ drm_gem_object_put_unlocked(object) 42| 43- drm_dev_unref(object) 44+ drm_dev_put(object) 45) 46 47@r depends on report@ 48expression object; 49position p; 50@@ 51 52( 53drm_connector_unreference@p(object) 54| 55drm_connector_reference@p(object) 56| 57drm_framebuffer_unreference@p(object) 58| 59drm_framebuffer_reference@p(object) 60| 61drm_gem_object_unreference@p(object) 62| 63drm_gem_object_reference@p(object) 64| 65__drm_gem_object_unreference(object) 66| 67drm_gem_object_unreference_unlocked(object) 68| 69drm_dev_unref@p(object) 70) 71 72@script:python depends on report@ 73object << r.object; 74p << r.p; 75@@ 76 77msg="WARNING: use get/put helpers to reference and dereference %s" % (object) 78coccilib.report.print_report(p[0], msg) 79