GNU Linux-libre 4.19.286-gnu1
[releases.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_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@
48 expression object;
49 position p;
50 @@
51
52 (
53 drm_connector_unreference@p(object)
54 |
55 drm_connector_reference@p(object)
56 |
57 drm_framebuffer_unreference@p(object)
58 |
59 drm_framebuffer_reference@p(object)
60 |
61 drm_gem_object_unreference@p(object)
62 |
63 drm_gem_object_reference@p(object)
64 |
65 __drm_gem_object_unreference(object)
66 |
67 drm_gem_object_unreference_unlocked(object)
68 |
69 drm_dev_unref@p(object)
70 )
71
72 @script:python depends on report@
73 object << r.object;
74 p << r.p;
75 @@
76
77 msg="WARNING: use get/put helpers to reference and dereference %s" % (object)
78 coccilib.report.print_report(p[0], msg)