summaryrefslogtreecommitdiff
path: root/scripts/coccinelle/api/alloc/alloc_cast.cocci
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/coccinelle/api/alloc/alloc_cast.cocci')
-rw-r--r--scripts/coccinelle/api/alloc/alloc_cast.cocci43
1 files changed, 29 insertions, 14 deletions
diff --git a/scripts/coccinelle/api/alloc/alloc_cast.cocci b/scripts/coccinelle/api/alloc/alloc_cast.cocci
index f6f0ccdb6409..a4b83cc8ea01 100644
--- a/scripts/coccinelle/api/alloc/alloc_cast.cocci
+++ b/scripts/coccinelle/api/alloc/alloc_cast.cocci
@@ -20,6 +20,24 @@ virtual patch
virtual org
virtual report
+@m1@
+identifier i;
+expression e;
+type T;
+position p1;
+@@
+
+#define i (T@p1 *)e
+
+@m2@
+identifier i;
+expression e;
+type T;
+position p2;
+@@
+
+#define i(...) (T@p2 *)e
+
@initialize:python@
@@
import re
@@ -28,15 +46,15 @@ m = re.compile(pattern)
@r1 depends on context || patch@
type T;
+position p != {m1.p1,m2.p2};
@@
- (T *)
+ (T@p *)
\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\|
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\)(...)
+ kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|
+ vmalloc_node\|vzalloc_node\)(...)
//----------------------------------------------------------
// For context mode
@@ -57,9 +75,8 @@ type r1.T;
\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\|
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\)(...)
+ kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|
+ vmalloc_node\|vzalloc_node\)(...)
//----------------------------------------------------------
// For patch mode
@@ -80,9 +97,8 @@ type r1.T;
\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\|
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\)(...)
+ kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|
+ vmalloc_node\|vzalloc_node\)(...)
//----------------------------------------------------------
// For org and report mode
@@ -90,16 +106,15 @@ type r1.T;
@r2 depends on org || report@
type T;
-position p;
+position p != {m1.p1,m2.p2};
@@
(T@p *)
\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|
kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\|vmalloc\|vzalloc\|
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\)(...)
+ kvmalloc\|kvzalloc\|kvmalloc_node\|kvzalloc_node\|
+ vmalloc_node\|vzalloc_node\)(...)
@script:python depends on org@
p << r2.p;