kobj_to_dev.cocci 764 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. ///
  3. /// Use kobj_to_dev() instead of container_of()
  4. ///
  5. // Confidence: High
  6. // Copyright: (C) 2020 Denis Efremov ISPRAS
  7. // Options: --no-includes --include-headers
  8. //
  9. // Keywords: kobj_to_dev, container_of
  10. //
  11. virtual context
  12. virtual report
  13. virtual org
  14. virtual patch
  15. @r depends on !patch@
  16. expression ptr;
  17. symbol kobj;
  18. position p;
  19. @@
  20. * container_of(ptr, struct device, kobj)@p
  21. @depends on patch@
  22. expression ptr;
  23. @@
  24. - container_of(ptr, struct device, kobj)
  25. + kobj_to_dev(ptr)
  26. @script:python depends on report@
  27. p << r.p;
  28. @@
  29. coccilib.report.print_report(p[0], "WARNING opportunity for kobj_to_dev()")
  30. @script:python depends on org@
  31. p << r.p;
  32. @@
  33. coccilib.org.print_todo(p[0], "WARNING opportunity for kobj_to_dev()")