diff options
Diffstat (limited to 'scripts/coccinelle')
-rw-r--r-- | scripts/coccinelle/api/alloc/alloc_cast.cocci | 8 | ||||
-rw-r--r-- | scripts/coccinelle/api/alloc/zalloc-simple.cocci | 11 | ||||
-rw-r--r-- | scripts/coccinelle/iterators/use_after_iter.cocci | 3 | ||||
-rw-r--r-- | scripts/coccinelle/misc/boolinit.cocci | 44 |
4 files changed, 38 insertions, 28 deletions
diff --git a/scripts/coccinelle/api/alloc/alloc_cast.cocci b/scripts/coccinelle/api/alloc/alloc_cast.cocci index 408ee3879f9b..18fedf7c60ed 100644 --- a/scripts/coccinelle/api/alloc/alloc_cast.cocci +++ b/scripts/coccinelle/api/alloc/alloc_cast.cocci @@ -32,7 +32,7 @@ type T; (T *) \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\| - dma_alloc_coherent\|dma_zalloc_coherent\|devm_kmalloc\|devm_kzalloc\| + dma_alloc_coherent\|devm_kmalloc\|devm_kzalloc\| kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|pci_alloc_consistent\| pci_zalloc_consistent\|kmem_alloc\|kmem_zalloc\|kmem_zone_alloc\| kmem_zone_zalloc\|vmalloc_node\|vzalloc_node\)(...) @@ -55,7 +55,7 @@ type r1.T; * (T *) \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\| - dma_alloc_coherent\|dma_zalloc_coherent\|devm_kmalloc\|devm_kzalloc\| + dma_alloc_coherent\|devm_kmalloc\|devm_kzalloc\| kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|pci_alloc_consistent\| pci_zalloc_consistent\|kmem_alloc\|kmem_zalloc\|kmem_zone_alloc\| kmem_zone_zalloc\|vmalloc_node\|vzalloc_node\)(...) @@ -78,7 +78,7 @@ type r1.T; - (T *) \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\| - dma_alloc_coherent\|dma_zalloc_coherent\|devm_kmalloc\|devm_kzalloc\| + dma_alloc_coherent\|devm_kmalloc\|devm_kzalloc\| kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|pci_alloc_consistent\| pci_zalloc_consistent\|kmem_alloc\|kmem_zalloc\|kmem_zone_alloc\| kmem_zone_zalloc\|vmalloc_node\|vzalloc_node\)(...) @@ -95,7 +95,7 @@ position p; (T@p *) \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\| - dma_alloc_coherent\|dma_zalloc_coherent\|devm_kmalloc\|devm_kzalloc\| + dma_alloc_coherent\|devm_kmalloc\|devm_kzalloc\| kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|pci_alloc_consistent\| pci_zalloc_consistent\|kmem_alloc\|kmem_zalloc\|kmem_zone_alloc\| kmem_zone_zalloc\|vmalloc_node\|vzalloc_node\)(...) diff --git a/scripts/coccinelle/api/alloc/zalloc-simple.cocci b/scripts/coccinelle/api/alloc/zalloc-simple.cocci index d819275b7fde..5cd1991c582e 100644 --- a/scripts/coccinelle/api/alloc/zalloc-simple.cocci +++ b/scripts/coccinelle/api/alloc/zalloc-simple.cocci @@ -69,15 +69,6 @@ statement S; - x = (T)vmalloc(E1); + x = (T)vzalloc(E1); | -- x = dma_alloc_coherent(E2,E1,E3,E4); -+ x = dma_zalloc_coherent(E2,E1,E3,E4); -| -- x = (T *)dma_alloc_coherent(E2,E1,E3,E4); -+ x = dma_zalloc_coherent(E2,E1,E3,E4); -| -- x = (T)dma_alloc_coherent(E2,E1,E3,E4); -+ x = (T)dma_zalloc_coherent(E2,E1,E3,E4); -| - x = kmalloc_node(E1,E2,E3); + x = kzalloc_node(E1,E2,E3); | @@ -225,7 +216,7 @@ p << r2.p; x << r2.x; @@ -msg="WARNING: dma_zalloc_coherent should be used for %s, instead of dma_alloc_coherent/memset" % (x) +msg="WARNING: dma_alloc_coherent use in %s already zeroes out memory, so memset is not needed" % (x) coccilib.report.print_report(p[0], msg) //----------------------------------------------------------------- diff --git a/scripts/coccinelle/iterators/use_after_iter.cocci b/scripts/coccinelle/iterators/use_after_iter.cocci index ce8cc9c006e5..66a1140474c8 100644 --- a/scripts/coccinelle/iterators/use_after_iter.cocci +++ b/scripts/coccinelle/iterators/use_after_iter.cocci @@ -35,6 +35,7 @@ iterator name hlist_for_each_entry_from; iterator name hlist_for_each_entry_safe; statement S; position p1,p2; +type T; @@ ( @@ -125,6 +126,8 @@ sizeof(<+...c...+>) | &c->member | +T c; +| c = E | *c@p2 diff --git a/scripts/coccinelle/misc/boolinit.cocci b/scripts/coccinelle/misc/boolinit.cocci index b9abed49cd95..aabb581fab5c 100644 --- a/scripts/coccinelle/misc/boolinit.cocci +++ b/scripts/coccinelle/misc/boolinit.cocci @@ -13,10 +13,17 @@ virtual context virtual org virtual report +@boolok@ +symbol true,false; +@@ +( +true +| +false +) + @depends on patch@ bool t; -symbol true; -symbol false; @@ ( @@ -63,7 +70,7 @@ bool t; + t ) -@depends on patch@ +@depends on patch && boolok@ bool b; @@ ( @@ -116,15 +123,24 @@ position p; * t@p != 0 ) -@r3 depends on !patch@ +@r3 depends on !patch && boolok@ bool b; -position p1,p2; -constant c; +position p1; @@ ( *b@p1 = 0 | *b@p1 = 1 +) + +@r4 depends on !patch@ +bool b; +position p2; +identifier i; +constant c != {0,1}; +@@ +( + b = i | *b@p2 = c ) @@ -139,19 +155,19 @@ cocci.print_main("WARNING: Comparison to bool",p) p << r2.p; @@ -cocci.print_main("WARNING: Comparison of bool to 0/1",p) +cocci.print_main("WARNING: Comparison of 0/1 to bool variable",p) @script:python depends on org@ p1 << r3.p1; @@ -cocci.print_main("WARNING: Assignment of bool to 0/1",p1) +cocci.print_main("WARNING: Assignment of 0/1 to bool variable",p1) @script:python depends on org@ -p2 << r3.p2; +p2 << r4.p2; @@ -cocci.print_main("ERROR: Assignment of bool to non-0/1 constant",p2) +cocci.print_main("ERROR: Assignment of non-0/1 constant to bool variable",p2) @script:python depends on report@ p << r1.p; @@ -163,16 +179,16 @@ coccilib.report.print_report(p[0],"WARNING: Comparison to bool") p << r2.p; @@ -coccilib.report.print_report(p[0],"WARNING: Comparison of bool to 0/1") +coccilib.report.print_report(p[0],"WARNING: Comparison of 0/1 to bool variable") @script:python depends on report@ p1 << r3.p1; @@ -coccilib.report.print_report(p1[0],"WARNING: Assignment of bool to 0/1") +coccilib.report.print_report(p1[0],"WARNING: Assignment of 0/1 to bool variable") @script:python depends on report@ -p2 << r3.p2; +p2 << r4.p2; @@ -coccilib.report.print_report(p2[0],"ERROR: Assignment of bool to non-0/1 constant") +coccilib.report.print_report(p2[0],"ERROR: Assignment of non-0/1 constant to bool variable") |