46 lines
764 B
Plaintext
46 lines
764 B
Plaintext
|
// 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()")
|