* [PATCH v4 1/3] Coccinelle: misc: Improve the matching of rules
2016-11-23 8:42 [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar
@ 2016-11-23 8:46 ` Vaishali Thakkar
2016-11-23 8:46 ` [PATCH v4 3/3] Coccinelle: misc: Add support for devm variant in all modes Vaishali Thakkar
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Vaishali Thakkar @ 2016-11-23 8:46 UTC (permalink / raw)
To: mmarek
Cc: julia.lawall, gilles.muller, nicolas.palix, lars, cocci,
linux-kernel, Vaishali Thakkar
Currently because of the left associativity of the operators, pattern
IRQF_ONESHOT | flags does not match with the pattern when we have more
than one flag after the disjunction. This eventually results in giving
false positives by the script. This patch eliminates these FPs by
improving the rule.
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
---
Changes since v3:
- Few more changes in the script to avoid some
possible false positives
- Moved initialization of all expressions in a single line
Changes since v2:
- No change in this patch
Changes since v1:
- Splitted patch in the patchset
---
scripts/coccinelle/misc/irqf_oneshot.cocci | 36 +++++++++++++++++++-----------
1 file changed, 23 insertions(+), 13 deletions(-)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index b421150..bd3e140 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -15,16 +15,13 @@ virtual org
virtual report
@r1@
-expression dev;
-expression irq;
-expression thread_fn;
-expression flags;
+expression dev, irq, thread_fn;
position p;
@@
(
request_threaded_irq@p(irq, NULL, thread_fn,
(
-flags | IRQF_ONESHOT
+IRQF_ONESHOT | ...
|
IRQF_ONESHOT
)
@@ -32,21 +29,34 @@ IRQF_ONESHOT
|
devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
(
-flags | IRQF_ONESHOT
+IRQF_ONESHOT | ...
|
IRQF_ONESHOT
)
, ...)
)
-@depends on patch@
-expression dev;
-expression irq;
-expression thread_fn;
-expression flags;
+@r2@
+expression dev, irq, thread_fn, flags, e;
position p != r1.p;
@@
(
+flags = IRQF_ONESHOT | ...
+|
+flags |= IRQF_ONESHOT | ...
+)
+... when != flags = e
+(
+request_threaded_irq@p(irq, NULL, thread_fn, flags, ...);
+|
+devm_request_threaded_irq@p(dev, irq, NULL, thread_fn, flags, ...);
+)
+
+@depends on patch@
+expression dev, irq, thread_fn, flags;
+position p != {r1.p,r2.p};
+@@
+(
request_threaded_irq@p(irq, NULL, thread_fn,
(
-0
@@ -69,13 +79,13 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
)
@depends on context@
-position p != r1.p;
+position p != {r1.p,r2.p};
@@
*request_threaded_irq@p(...)
@match depends on report || org@
expression irq;
-position p != r1.p;
+position p != {r1.p,r2.p};
@@
request_threaded_irq@p(irq, NULL, ...)
--
2.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 3/3] Coccinelle: misc: Add support for devm variant in all modes
2016-11-23 8:42 [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar
2016-11-23 8:46 ` [PATCH v4 1/3] Coccinelle: misc: Improve the matching of rules Vaishali Thakkar
@ 2016-11-23 8:46 ` Vaishali Thakkar
2016-11-23 8:46 ` [PATCH v4 2/3] Coccinelle: misc: Improve the result given by context mode Vaishali Thakkar
2016-12-11 11:08 ` [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Michal Marek
3 siblings, 0 replies; 5+ messages in thread
From: Vaishali Thakkar @ 2016-11-23 8:46 UTC (permalink / raw)
To: mmarek
Cc: julia.lawall, gilles.muller, nicolas.palix, lars, cocci,
linux-kernel, Vaishali Thakkar
Add missing support for the devm_request_threaded_irq in
the rules of context, report and org modes.
Misc:
----
To be consistent with other scripts, change confidence level
of the script to 'Moderate'.
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
---
Changes since v3:
- No changes in this patch
Changes since v2:
- Add missing initialization of metavariables
Changes since v1:
- Split patch in to the patchset
---
scripts/coccinelle/misc/irqf_oneshot.cocci | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index cec3672..58c2578 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -5,7 +5,7 @@
/// So pass the IRQF_ONESHOT flag in this case.
///
//
-// Confidence: Good
+// Confidence: Moderate
// Comments:
// Options: --no-includes
@@ -79,16 +79,25 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
)
@depends on context@
-expression irq;
+expression dev, irq;
position p != {r1.p,r2.p};
@@
+(
*request_threaded_irq@p(irq, NULL, ...)
+|
+*devm_request_threaded_irq@p(dev, irq, NULL, ...)
+)
+
@match depends on report || org@
-expression irq;
+expression dev, irq;
position p != {r1.p,r2.p};
@@
+(
request_threaded_irq@p(irq, NULL, ...)
+|
+devm_request_threaded_irq@p(dev, irq, NULL, ...)
+)
@script:python depends on org@
p << match.p;
--
2.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 2/3] Coccinelle: misc: Improve the result given by context mode
2016-11-23 8:42 [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar
2016-11-23 8:46 ` [PATCH v4 1/3] Coccinelle: misc: Improve the matching of rules Vaishali Thakkar
2016-11-23 8:46 ` [PATCH v4 3/3] Coccinelle: misc: Add support for devm variant in all modes Vaishali Thakkar
@ 2016-11-23 8:46 ` Vaishali Thakkar
2016-12-11 11:08 ` [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Michal Marek
3 siblings, 0 replies; 5+ messages in thread
From: Vaishali Thakkar @ 2016-11-23 8:46 UTC (permalink / raw)
To: mmarek
Cc: julia.lawall, gilles.muller, nicolas.palix, lars, cocci,
linux-kernel, Vaishali Thakkar
To eliminate false positives given by the context mode, add
necessary arguments for the function request_threaded_irq.
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
---
Changes since v3:
- No changes in this patch
Changes since v2:
- Add missing declaration of metavariable irq
Changes since v1:
- Split patch in to the patch set
---
scripts/coccinelle/misc/irqf_oneshot.cocci | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index bd3e140..cec3672 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -79,9 +79,10 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
)
@depends on context@
+expression irq;
position p != {r1.p,r2.p};
@@
-*request_threaded_irq@p(...)
+*request_threaded_irq@p(irq, NULL, ...)
@match depends on report || org@
expression irq;
--
2.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results
2016-11-23 8:42 [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar
` (2 preceding siblings ...)
2016-11-23 8:46 ` [PATCH v4 2/3] Coccinelle: misc: Improve the result given by context mode Vaishali Thakkar
@ 2016-12-11 11:08 ` Michal Marek
3 siblings, 0 replies; 5+ messages in thread
From: Michal Marek @ 2016-12-11 11:08 UTC (permalink / raw)
To: Vaishali Thakkar
Cc: julia.lawall, gilles.muller, nicolas.palix, lars, cocci, linux-kernel
On Wed, Nov 23, 2016 at 02:12:58PM +0530, Vaishali Thakkar wrote:
> Few changes to improve the results given by the irqf_oneshot.cocci:
>
> - Change in the matching rules to eliminate false postives in the
> patch mode
> - Change in the context mode to eliminate false postives in the
> context mode
> - Support for the missing devm_request_threaded_irq in context, report
> and org mode
>
> Changes since v3:
> - Few more changes in the script to avoid some
> possible false positives
> - Moved initialization of all expressions in a single line
> Changes since v2:
> - Add missing initialization of metavariables
> Changes since v1:
> - Split patch in to the patchset
>
> Vaishali Thakkar (3):
> Coccinelle: misc: Improve the matching of rules
> Coccinelle: misc: Improve the result given by context mode
> Coccinelle: misc: Add support for devm variant in all modes
Applied to kbuild.git#misc.
Michal
^ permalink raw reply [flat|nested] 5+ messages in thread