mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 16:49:22 +00:00
Add scripts/coccinelle/alloc/drop_kmalloc_cast.cocci
The purpose of this semantic patch is to remove useless casts, as mentioned in the Linux documentation. See Chapter 14 in Documentation/CodingStyle for more information. Signed-off-by: Nicolas Palix <npalix@diku.dk> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
e228b1e651
commit
51169c8015
1 changed files with 67 additions and 0 deletions
67
scripts/coccinelle/alloc/drop_kmalloc_cast.cocci
Normal file
67
scripts/coccinelle/alloc/drop_kmalloc_cast.cocci
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
///
|
||||||
|
/// Casting (void *) value returned by kmalloc is useless
|
||||||
|
/// as mentioned in Documentation/CodingStyle, Chap 14.
|
||||||
|
///
|
||||||
|
// Confidence: High
|
||||||
|
// Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2.
|
||||||
|
// URL: http://coccinelle.lip6.fr/
|
||||||
|
// Options: -no_includes -include_headers
|
||||||
|
//
|
||||||
|
// Keywords: kmalloc, kzalloc, kcalloc
|
||||||
|
// Version min: < 2.6.12 kmalloc
|
||||||
|
// Version min: < 2.6.12 kcalloc
|
||||||
|
// Version min: 2.6.14 kzalloc
|
||||||
|
//
|
||||||
|
|
||||||
|
virtual context
|
||||||
|
virtual patch
|
||||||
|
virtual org
|
||||||
|
virtual report
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For context mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@depends on context@
|
||||||
|
type T;
|
||||||
|
@@
|
||||||
|
|
||||||
|
* (T *)
|
||||||
|
\(kmalloc\|kzalloc\|kcalloc\)(...)
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For patch mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@depends on patch@
|
||||||
|
type T;
|
||||||
|
@@
|
||||||
|
|
||||||
|
- (T *)
|
||||||
|
\(kmalloc\|kzalloc\|kcalloc\)(...)
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For org and report mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@r depends on org || report@
|
||||||
|
type T;
|
||||||
|
position p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...)
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p << r.p;
|
||||||
|
t << r.T;
|
||||||
|
@@
|
||||||
|
|
||||||
|
coccilib.org.print_safe_todo(p[0], t)
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p << r.p;
|
||||||
|
t << r.T;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t)
|
||||||
|
coccilib.report.print_report(p[0], msg)
|
Loading…
Reference in a new issue