drm-get-put.cocci 1.8 KB

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