mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 12:10:38 -04:00
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>
This commit is contained in:
committed by
Julia Lawall
parent
7a2624e6de
commit
a2fc3718bc
45
scripts/coccinelle/api/kobj_to_dev.cocci
Normal file
45
scripts/coccinelle/api/kobj_to_dev.cocci
Normal file
@@ -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()")
|
||||||
Reference in New Issue
Block a user