Merge tag 'drm-for-v4.15' of git://people.freedesktop.org/~airlied/linux
[linux-2.6-block.git] / scripts / coccinelle / api / drm-get-put.cocci
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
11 virtual patch
12 virtual report
13
14 @depends on patch@
15 expression object;
16 @@
17
18 (
19 - drm_mode_object_reference(object)
20 + drm_mode_object_get(object)
21 |
22 - drm_mode_object_unreference(object)
23 + drm_mode_object_put(object)
24 |
25 - drm_connector_reference(object)
26 + drm_connector_get(object)
27 |
28 - drm_connector_unreference(object)
29 + drm_connector_put(object)
30 |
31 - drm_framebuffer_reference(object)
32 + drm_framebuffer_get(object)
33 |
34 - drm_framebuffer_unreference(object)
35 + drm_framebuffer_put(object)
36 |
37 - drm_gem_object_reference(object)
38 + drm_gem_object_get(object)
39 |
40 - drm_gem_object_unreference(object)
41 + drm_gem_object_put(object)
42 |
43 - __drm_gem_object_unreference(object)
44 + __drm_gem_object_put(object)
45 |
46 - drm_gem_object_unreference_unlocked(object)
47 + drm_gem_object_put_unlocked(object)
48 |
49 - drm_property_reference_blob(object)
50 + drm_property_blob_get(object)
51 |
52 - drm_property_unreference_blob(object)
53 + drm_property_blob_put(object)
54 |
55 - drm_dev_unref(object)
56 + drm_dev_put(object)
57 )
58
59 @r depends on report@
60 expression object;
61 position p;
62 @@
63
64 (
65 drm_mode_object_unreference@p(object)
66 |
67 drm_mode_object_reference@p(object)
68 |
69 drm_connector_unreference@p(object)
70 |
71 drm_connector_reference@p(object)
72 |
73 drm_framebuffer_unreference@p(object)
74 |
75 drm_framebuffer_reference@p(object)
76 |
77 drm_gem_object_unreference@p(object)
78 |
79 drm_gem_object_reference@p(object)
80 |
81 __drm_gem_object_unreference(object)
82 |
83 drm_gem_object_unreference_unlocked(object)
84 |
85 drm_property_unreference_blob@p(object)
86 |
87 drm_property_reference_blob@p(object)
88 |
89 drm_dev_unref@p(object)
90 )
91
92 @script:python depends on report@
93 object << r.object;
94 p << r.p;
95 @@
96
97 msg="WARNING: use get/put helpers to reference and dereference %s" % (object)
98 coccilib.report.print_report(p[0], msg)