linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/3] Coccinelle: misc: Improve the script for more accurate results
@ 2016-11-23  8:42 Vaishali Thakkar
  2016-11-23  8:46 ` [PATCH v4 1/3] Coccinelle: misc: Improve the matching of rules Vaishali Thakkar
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Vaishali Thakkar @ 2016-11-23  8:42 UTC (permalink / raw)
  To: mmarek
  Cc: julia.lawall, gilles.muller, nicolas.palix, lars, cocci,
	linux-kernel, Vaishali Thakkar

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

 scripts/coccinelle/misc/irqf_oneshot.cocci | 52 +++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 16 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [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

end of thread, other threads:[~2016-12-11 11:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).