aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-09-08 20:52:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-09-08 20:52:23 -0400
commitf6f7a6369203fa3e07efb7f35cfd81efe9f25b07 (patch)
tree97bec9ddd999040822acf314647eaf4208213589 /scripts
parent839fe9156fbe89c3157aa6146d22090f8cffddd8 (diff)
parentdf69f52d990bd85159727bd26e819d3a6e49c666 (diff)
Merge branch 'akpm' (patches from Andrew)
Merge second patch-bomb from Andrew Morton: "Almost all of the rest of MM. There was an unusually large amount of MM material this time" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (141 commits) zpool: remove no-op module init/exit mm: zbud: constify the zbud_ops mm: zpool: constify the zpool_ops mm: swap: zswap: maybe_preload & refactoring zram: unify error reporting zsmalloc: remove null check from destroy_handle_cache() zsmalloc: do not take class lock in zs_shrinker_count() zsmalloc: use class->pages_per_zspage zsmalloc: consider ZS_ALMOST_FULL as migrate source zsmalloc: partial page ordering within a fullness_list zsmalloc: use shrinker to trigger auto-compaction zsmalloc: account the number of compacted pages zsmalloc/zram: introduce zs_pool_stats api zsmalloc: cosmetic compaction code adjustments zsmalloc: introduce zs_can_compact() function zsmalloc: always keep per-class stats zsmalloc: drop unused variable `nr_to_migrate' mm/memblock.c: fix comment in __next_mem_range() mm/page_alloc.c: fix type information of memoryless node memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node() ...
Diffstat (limited to 'scripts')
-rw-r--r--scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci84
1 files changed, 84 insertions, 0 deletions
diff --git a/scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci b/scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci
new file mode 100644
index 000000000000..9b7eb321a025
--- /dev/null
+++ b/scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci
@@ -0,0 +1,84 @@
1///
2/// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0
3///
4// Copyright: (C) 2015 Intel Corp. GPLv2.
5// Options: --no-includes --include-headers
6//
7// Keywords: dma_pool_zalloc, pci_pool_zalloc
8//
9
10virtual context
11virtual patch
12virtual org
13virtual report
14
15//----------------------------------------------------------
16// For context mode
17//----------------------------------------------------------
18
19@depends on context@
20expression x;
21statement S;
22@@
23
24* x = \(dma_pool_alloc\|pci_pool_alloc\)(...);
25 if ((x==NULL) || ...) S
26* memset(x,0, ...);
27
28//----------------------------------------------------------
29// For patch mode
30//----------------------------------------------------------
31
32@depends on patch@
33expression x;
34expression a,b,c;
35statement S;
36@@
37
38- x = dma_pool_alloc(a,b,c);
39+ x = dma_pool_zalloc(a,b,c);
40 if ((x==NULL) || ...) S
41- memset(x,0,...);
42
43@depends on patch@
44expression x;
45expression a,b,c;
46statement S;
47@@
48
49- x = pci_pool_alloc(a,b,c);
50+ x = pci_pool_zalloc(a,b,c);
51 if ((x==NULL) || ...) S
52- memset(x,0,...);
53
54//----------------------------------------------------------
55// For org and report mode
56//----------------------------------------------------------
57
58@r depends on org || report@
59expression x;
60expression a,b,c;
61statement S;
62position p;
63@@
64
65 x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c);
66 if ((x==NULL) || ...) S
67 memset(x,0, ...);
68
69@script:python depends on org@
70p << r.p;
71x << r.x;
72@@
73
74msg="%s" % (x)
75msg_safe=msg.replace("[","@(").replace("]",")")
76coccilib.org.print_todo(p[0], msg_safe)
77
78@script:python depends on report@
79p << r.p;
80x << r.x;
81@@
82
83msg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x)
84coccilib.report.print_report(p[0], msg)