Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1507152 > unrolled thread
| Started by | Vaishali Thakkar <vaishali.thakkar@oracle.com> |
|---|---|
| First post | 2016-10-24 14:40 +0200 |
| Last post | 2016-10-24 14:40 +0200 |
| Articles | 4 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v3 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-24 14:40 +0200
[PATCH v3 3/3] Coccinelle: misc: Add support for devm variant in all modes Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-24 14:40 +0200
[PATCH v3 1/3] Coccinelle: misc: Improve the matching of rules Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-24 14:40 +0200
[PATCH v3 2/3] Coccinelle: misc: Improve the result given by context mode Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-24 14:40 +0200
| From | Vaishali Thakkar <vaishali.thakkar@oracle.com> |
|---|---|
| Date | 2016-10-24 14:40 +0200 |
| Subject | [PATCH v3 0/3] Coccinelle: misc: Improve the script for more accurate results |
| Message-ID | <svMHM-7B9-27@gated-at.bofh.it> |
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 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 | 45 ++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 8 deletions(-) -- 2.1.4
[toc] | [next] | [standalone]
| From | Vaishali Thakkar <vaishali.thakkar@oracle.com> |
|---|---|
| Date | 2016-10-24 14:40 +0200 |
| Subject | [PATCH v3 3/3] Coccinelle: misc: Add support for devm variant in all modes |
| Message-ID | <svMHM-7B9-29@gated-at.bofh.it> |
| In reply to | #1507152 |
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>
---
Changes since v2:
- Add missing initialization of metavariables
Changes since v1:
- Split patch in to the patchset
---
scripts/coccinelle/misc/irqf_oneshot.cocci | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index e53372e..ca78125 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
@@ -87,16 +87,26 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
)
@depends on context@
+expression dev;
expression 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 dev;
expression 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
[toc] | [prev] | [next] | [standalone]
| From | Vaishali Thakkar <vaishali.thakkar@oracle.com> |
|---|---|
| Date | 2016-10-24 14:40 +0200 |
| Subject | [PATCH v3 1/3] Coccinelle: misc: Improve the matching of rules |
| Message-ID | <svMHM-7B9-59@gated-at.bofh.it> |
| In reply to | #1507152 |
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 v2:
- No change in this patch
Changes since v1:
- Splitted patch in the patchset
---
scripts/coccinelle/misc/irqf_oneshot.cocci | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index b421150..a8537fb 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -18,13 +18,12 @@ virtual report
expression dev;
expression irq;
expression thread_fn;
-expression flags;
position p;
@@
(
request_threaded_irq@p(irq, NULL, thread_fn,
(
-flags | IRQF_ONESHOT
+IRQF_ONESHOT | ...
|
IRQF_ONESHOT
)
@@ -32,20 +31,39 @@ IRQF_ONESHOT
|
devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
(
-flags | IRQF_ONESHOT
+IRQF_ONESHOT | ...
|
IRQF_ONESHOT
)
, ...)
)
-@depends on patch@
+@r2@
expression dev;
expression irq;
expression thread_fn;
expression flags;
+expression ret;
position p != r1.p;
@@
+flags = IRQF_ONESHOT | ...;
+(
+ret = request_threaded_irq@p(irq, NULL, thread_fn, flags, ...);
+|
+ret = devm_request_threaded_irq@p(dev, irq, NULL, thread_fn, flags, ...);
+|
+return request_threaded_irq@p(irq, NULL, thread_fn, flags, ...);
+|
+return devm_request_threaded_irq@p(dev, irq, NULL, thread_fn, flags, ...);
+)
+
+@depends on patch@
+expression dev;
+expression irq;
+expression thread_fn;
+expression flags;
+position p != {r1.p,r2.p};
+@@
(
request_threaded_irq@p(irq, NULL, thread_fn,
(
@@ -69,13 +87,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
[toc] | [prev] | [next] | [standalone]
| From | Vaishali Thakkar <vaishali.thakkar@oracle.com> |
|---|---|
| Date | 2016-10-24 14:40 +0200 |
| Subject | [PATCH v3 2/3] Coccinelle: misc: Improve the result given by context mode |
| Message-ID | <svMHN-7B9-69@gated-at.bofh.it> |
| In reply to | #1507152 |
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>
---
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 a8537fb..e53372e 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -87,9 +87,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
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web