diff options
author | Denis Efremov <efremov@linux.com> | 2020-08-21 23:11:37 +0300 |
---|---|---|
committer | Julia Lawall <Julia.Lawall@lip6.fr> | 2020-08-21 23:35:48 +0300 |
commit | a2fc3718bc22e85378085568ecc5765fb28cabce (patch) | |
tree | 859695f621d21f6afe0d4668418e657c3a2166c3 /scripts/coccinelle | |
parent | 7a2624e6de03050c9f15af21c216818d5508b5e9 (diff) | |
download | linux-a2fc3718bc22e85378085568ecc5765fb28cabce.tar.xz |
coccinelle: api: add kobj_to_dev.cocci script
Use kobj_to_dev() instead of container_of().
Signed-off-by: Denis Efremov <efremov@linux.com>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Diffstat (limited to 'scripts/coccinelle')
-rw-r--r-- | scripts/coccinelle/api/kobj_to_dev.cocci | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/coccinelle/api/kobj_to_dev.cocci b/scripts/coccinelle/api/kobj_to_dev.cocci new file mode 100644 index 000000000000..cd5d31c6fe76 --- /dev/null +++ b/scripts/coccinelle/api/kobj_to_dev.cocci @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-only +/// +/// Use kobj_to_dev() instead of container_of() +/// +// Confidence: High +// Copyright: (C) 2020 Denis Efremov ISPRAS +// Options: --no-includes --include-headers +// +// Keywords: kobj_to_dev, container_of +// + +virtual context +virtual report +virtual org +virtual patch + + +@r depends on !patch@ +expression ptr; +symbol kobj; +position p; +@@ + +* container_of(ptr, struct device, kobj)@p + + +@depends on patch@ +expression ptr; +@@ + +- container_of(ptr, struct device, kobj) ++ kobj_to_dev(ptr) + + +@script:python depends on report@ +p << r.p; +@@ + +coccilib.report.print_report(p[0], "WARNING opportunity for kobj_to_dev()") + +@script:python depends on org@ +p << r.p; +@@ + +coccilib.org.print_todo(p[0], "WARNING opportunity for kobj_to_dev()") |