-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Nicolas Palix
authored and
Michal Marek
committed
Jun 11, 2010
1 parent
e228b1e
commit 51169c8
Showing
1 changed file
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |