devm_ioremap_resource.cocci 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. virtual patch
  2. virtual report
  3. @depends on patch@
  4. expression base, dev, res;
  5. @@
  6. -base = devm_request_and_ioremap(dev, res);
  7. +base = devm_ioremap_resource(dev, res);
  8. ...
  9. if (
  10. -base == NULL
  11. +IS_ERR(base)
  12. || ...) {
  13. <...
  14. - return ...;
  15. + return PTR_ERR(base);
  16. ...>
  17. }
  18. @depends on patch@
  19. expression e, E, ret;
  20. identifier l;
  21. @@
  22. e = devm_ioremap_resource(...);
  23. ...
  24. if (IS_ERR(e) || ...) {
  25. ... when any
  26. - ret = E;
  27. + ret = PTR_ERR(e);
  28. ...
  29. (
  30. return ret;
  31. |
  32. goto l;
  33. )
  34. }
  35. @depends on patch@
  36. expression e;
  37. @@
  38. e = devm_ioremap_resource(...);
  39. ...
  40. if (IS_ERR(e) || ...) {
  41. ...
  42. - \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...);
  43. ...
  44. }
  45. @depends on patch@
  46. expression e;
  47. identifier l;
  48. @@
  49. e = devm_ioremap_resource(...);
  50. ...
  51. if (IS_ERR(e) || ...)
  52. -{
  53. (
  54. return ...;
  55. |
  56. goto l;
  57. )
  58. -}
  59. @r depends on report@
  60. expression e;
  61. identifier l;
  62. position p1;
  63. @@
  64. *e = devm_request_and_ioremap@p1(...);
  65. ...
  66. if (e == NULL || ...) {
  67. ...
  68. (
  69. return ...;
  70. |
  71. goto l;
  72. )
  73. }
  74. @script:python depends on r@
  75. p1 << r.p1;
  76. @@
  77. msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line)
  78. coccilib.report.print_report(p1[0], msg)