summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci')
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci105
1 files changed, 0 insertions, 105 deletions
diff --git a/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci b/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci
deleted file mode 100644
index 8f10b496..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci
+++ /dev/null
@@ -1,105 +0,0 @@
-/// Find functions that refer to GFP_KERNEL but are called with locks held.
-//# The proposed change of converting the GFP_KERNEL is not necessarily the
-//# correct one. It may be desired to unlock the lock, or to not call the
-//# function under the lock in the first place.
-///
-// Confidence: Moderate
-// Copyright: (C) 2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@gfp exists@
-identifier fn;
-position p;
-@@
-
-fn(...) {
- ... when != read_unlock_irq(...)
- when != write_unlock_irq(...)
- when != read_unlock_irqrestore(...)
- when != write_unlock_irqrestore(...)
- when != spin_unlock(...)
- when != spin_unlock_irq(...)
- when != spin_unlock_irqrestore(...)
- when != local_irq_enable(...)
- when any
- GFP_KERNEL@p
- ... when any
-}
-
-@locked exists@
-identifier gfp.fn;
-position p1,p2;
-@@
-
-(
-read_lock_irq@p1
-|
-write_lock_irq@p1
-|
-read_lock_irqsave@p1
-|
-write_lock_irqsave@p1
-|
-spin_lock@p1
-|
-spin_trylock@p1
-|
-spin_lock_irq@p1
-|
-spin_lock_irqsave@p1
-|
-local_irq_disable@p1
-)
- (...)
-... when != read_unlock_irq(...)
- when != write_unlock_irq(...)
- when != read_unlock_irqrestore(...)
- when != write_unlock_irqrestore(...)
- when != spin_unlock(...)
- when != spin_unlock_irq(...)
- when != spin_unlock_irqrestore(...)
- when != local_irq_enable(...)
-fn@p2(...)
-
-@depends on locked && patch@
-position gfp.p;
-@@
-
-- GFP_KERNEL@p
-+ GFP_ATOMIC
-
-@depends on locked && !patch@
-position gfp.p;
-@@
-
-* GFP_KERNEL@p
-
-@script:python depends on !patch && org@
-p << gfp.p;
-fn << gfp.fn;
-p1 << locked.p1;
-p2 << locked.p2;
-@@
-
-cocci.print_main("lock",p1)
-cocci.print_secs("call",p2)
-cocci.print_secs("GFP_KERNEL",p)
-
-@script:python depends on !patch && report@
-p << gfp.p;
-fn << gfp.fn;
-p1 << locked.p1;
-p2 << locked.p2;
-@@
-
-msg = "ERROR: function %s called on line %s inside lock on line %s but uses GFP_KERNEL" % (fn,p2[0].line,p1[0].line)
-coccilib.report.print_report(p[0], msg)