Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1501532 > unrolled thread

[PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

Started byVaishali Thakkar <vaishali.thakkar@oracle.com>
First post2016-10-16 19:20 +0200
Last post2016-10-18 20:10 +0200
Articles 13 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-16 19:20 +0200
    [PATCH v2 1/3] Coccinelle: misc: Improve the matching of rules Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-16 19:20 +0200
    [PATCH v2 2/3] Coccinelle: misc: Improve the result given by context mode Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-16 19:20 +0200
    [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-16 20:10 +0200
      Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in  all modes Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-18 19:10 +0200
        Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant  in all modes Julia Lawall <julia.lawall@lip6.fr> - 2016-10-18 19:20 +0200
          Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in  all modes Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-18 19:50 +0200
      Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in  all modes Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-18 19:20 +0200
    Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more  accurate results Julia Lawall <julia.lawall@lip6.fr> - 2016-10-18 18:40 +0200
      Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more  accurate results Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-18 19:00 +0200
        Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more  accurate results Julia Lawall <julia.lawall@lip6.fr> - 2016-10-18 19:10 +0200
          Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more  accurate results Vaishali Thakkar <vaishali.thakkar@oracle.com> - 2016-10-18 19:20 +0200
            Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more  accurate results Julia Lawall <julia.lawall@lip6.fr> - 2016-10-18 20:10 +0200

#1501532 — [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-16 19:20 +0200
Subject[PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<ssXgl-h3-1@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


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 | 42 ++++++++++++++++++++++++------
 1 file changed, 34 insertions(+), 8 deletions(-)

-- 
2.1.4

[toc] | [next] | [standalone]


#1501533 — [PATCH v2 1/3] Coccinelle: misc: Improve the matching of rules

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-16 19:20 +0200
Subject[PATCH v2 1/3] Coccinelle: misc: Improve the matching of rules
Message-ID<ssXgl-h3-3@gated-at.bofh.it>
In reply to#1501532
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>
---
 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..b538d08 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]


#1501536 — [PATCH v2 2/3] Coccinelle: misc: Improve the result given by context mode

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-16 19:20 +0200
Subject[PATCH v2 2/3] Coccinelle: misc: Improve the result given by context mode
Message-ID<ssXgl-h3-13@gated-at.bofh.it>
In reply to#1501532
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>
---
 scripts/coccinelle/misc/irqf_oneshot.cocci | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index b538d08..03b748d 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -89,7 +89,7 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
 @depends on context@
 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] | [next] | [standalone]


#1501545 — [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-16 20:10 +0200
Subject[PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes
Message-ID<ssY2J-NN-3@gated-at.bofh.it>
In reply to#1501532
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>
---
 scripts/coccinelle/misc/irqf_oneshot.cocci | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index 03b748d..f6c93fd 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
 
@@ -89,13 +89,21 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
 @depends on context@
 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;
 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]


#1503230 — Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-18 19:10 +0200
SubjectRe: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes
Message-ID<stG3L-4JB-5@gated-at.bofh.it>
In reply to#1501545

On Sunday 16 October 2016 10:37 PM, Vaishali Thakkar wrote:
> 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>
> ---
>  scripts/coccinelle/misc/irqf_oneshot.cocci | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
> index 03b748d..f6c93fd 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
>  
> @@ -89,13 +89,21 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
>  @depends on context@
>  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;
>  position p != {r1.p,r2.p};
>  @@
> +(
>  request_threaded_irq@p(irq, NULL, ...)
> +|
> +devm_request_threaded_irq@p(dev, irq, NULL, ...)
> +)

Oh, my bad here. :(

Forgot the initialization of meta variables for the
arguments.

But I am wondering why coccicheck didn't fail here.
Isn't it suppose to give parsing errors? Or it doesn't
do that?

In any case, I am sorry for this. I'll send the revised
version of the patches.
  
>  @script:python depends on org@
>  p << match.p;
> 

-- 
Vaishali

[toc] | [prev] | [next] | [standalone]


#1503238 — Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes

FromJulia Lawall <julia.lawall@lip6.fr>
Date2016-10-18 19:20 +0200
SubjectRe: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes
Message-ID<stGdr-4O9-27@gated-at.bofh.it>
In reply to#1503230

On Tue, 18 Oct 2016, Vaishali Thakkar wrote:

>
>
> On Sunday 16 October 2016 10:37 PM, Vaishali Thakkar wrote:
> > 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>
> > ---
> >  scripts/coccinelle/misc/irqf_oneshot.cocci | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
> > index 03b748d..f6c93fd 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
> >
> > @@ -89,13 +89,21 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
> >  @depends on context@
> >  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;
> >  position p != {r1.p,r2.p};
> >  @@
> > +(
> >  request_threaded_irq@p(irq, NULL, ...)
> > +|
> > +devm_request_threaded_irq@p(dev, irq, NULL, ...)
> > +)
>
> Oh, my bad here. :(
>
> Forgot the initialization of meta variables for the
> arguments.
>
> But I am wondering why coccicheck didn't fail here.
> Isn't it suppose to give parsing errors? Or it doesn't
> do that?

It just give a warning, which I guess make coccicheck hides.  It is
allowed to require an argument to be named dev, although it is nicer if
one declares it with symbol in that case.

julia

>
> In any case, I am sorry for this. I'll send the revised
> version of the patches.
>
> >  @script:python depends on org@
> >  p << match.p;
> >
>
> --
> Vaishali
>

[toc] | [prev] | [next] | [standalone]


#1503254 — Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-18 19:50 +0200
SubjectRe: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes
Message-ID<stGGu-51q-5@gated-at.bofh.it>
In reply to#1503238

On Tuesday 18 October 2016 10:40 PM, Julia Lawall wrote:
> 
> 
> On Tue, 18 Oct 2016, Vaishali Thakkar wrote:
> 
>>
>>
>> On Sunday 16 October 2016 10:37 PM, Vaishali Thakkar wrote:
>>> 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>
>>> ---
>>>  scripts/coccinelle/misc/irqf_oneshot.cocci | 10 +++++++++-
>>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
>>> index 03b748d..f6c93fd 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
>>>
>>> @@ -89,13 +89,21 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
>>>  @depends on context@
>>>  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;
>>>  position p != {r1.p,r2.p};
>>>  @@
>>> +(
>>>  request_threaded_irq@p(irq, NULL, ...)
>>> +|
>>> +devm_request_threaded_irq@p(dev, irq, NULL, ...)
>>> +)
>>
>> Oh, my bad here. :(
>>
>> Forgot the initialization of meta variables for the
>> arguments.
>>
>> But I am wondering why coccicheck didn't fail here.
>> Isn't it suppose to give parsing errors? Or it doesn't
>> do that?
> 
> It just give a warning, which I guess make coccicheck hides.  It is
> allowed to require an argument to be named dev, although it is nicer if
> one declares it with symbol in that case.

Ah, ok. The results were based on the names 'irq, dev etc', not on the
assumption for metavariables.
 
> julia
> 
>>
>> In any case, I am sorry for this. I'll send the revised
>> version of the patches.
>>
>>>  @script:python depends on org@
>>>  p << match.p;
>>>
>>
>> --
>> Vaishali
>>

-- 
Vaishali

[toc] | [prev] | [next] | [standalone]


#1503242 — Re: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-18 19:20 +0200
SubjectRe: [PATCH v2 3/3] Coccinelle: misc: Add support for devm variant in all modes
Message-ID<stGdr-4O9-15@gated-at.bofh.it>
In reply to#1501545

On Sunday 16 October 2016 10:37 PM, Vaishali Thakkar wrote:
> 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>
> ---
>  scripts/coccinelle/misc/irqf_oneshot.cocci | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
> index 03b748d..f6c93fd 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
>  
> @@ -89,13 +89,21 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
>  @depends on context@
>  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;
>  position p != {r1.p,r2.p};
>  @@
> +(
>  request_threaded_irq@p(irq, NULL, ...)
> +|
> +devm_request_threaded_irq@p(dev, irq, NULL, ...)
> +)

Oh, my bad here. :(

Forgot the initialization of meta variables for the
arguments.

But I am wondering why coccicheck didn't fail here.
Isn't it suppose to give parsing errors? Or it doesn't
do that?

In any case, I am sorry for this. I'll send the revised
version of the patches.
 
>  @script:python depends on org@
>  p << match.p;
> 

-- 
Vaishali

[toc] | [prev] | [next] | [standalone]


#1503211 — Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromJulia Lawall <julia.lawall@lip6.fr>
Date2016-10-18 18:40 +0200
SubjectRe: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<stFAK-4gM-19@gated-at.bofh.it>
In reply to#1501532
I get the following in patch mode that I don't get in context mode:

diff -u -p a/drivers/power/supply/tps65090-charger.c
b/drivers/power/supply/tps\
65090-charger.c
--- a/drivers/power/supply/tps65090-charger.c
+++ b/drivers/power/supply/tps65090-charger.c
@@ -311,7 +311,8 @@ static int tps65090_charger_probe(struct

	if (irq != -ENXIO) {
		ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
-                       tps65090_charger_isr, 0, "tps65090-charger", cdata);
+                       tps65090_charger_isr, IRQF_ONESHOT,
+                       "tps65090-charger", cdata);
		if (ret) {
                        dev_err(cdata->dev,
				"Unable to register irq %d err %d\n", irq,


julia

[toc] | [prev] | [next] | [standalone]


#1503224 — Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-18 19:00 +0200
SubjectRe: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<stFU5-4q4-11@gated-at.bofh.it>
In reply to#1503211

On Tuesday 18 October 2016 10:04 PM, Julia Lawall wrote:
> I get the following in patch mode that I don't get in context mode:

Hi,

Are you getting same number of devm cases in your report for the context
and patch mode? [except this case]


> diff -u -p a/drivers/power/supply/tps65090-charger.c
> b/drivers/power/supply/tps\
> 65090-charger.c
> --- a/drivers/power/supply/tps65090-charger.c
> +++ b/drivers/power/supply/tps65090-charger.c
> @@ -311,7 +311,8 @@ static int tps65090_charger_probe(struct
> 
> 	if (irq != -ENXIO) {
> 		ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
> -                       tps65090_charger_isr, 0, "tps65090-charger", cdata);
> +                       tps65090_charger_isr, IRQF_ONESHOT,
> +                       "tps65090-charger", cdata);
> 		if (ret) {
>                         dev_err(cdata->dev,
> 				"Unable to register irq %d err %d\n", irq,
> 
> 
> julia
> 

-- 
Vaishali

[toc] | [prev] | [next] | [standalone]


#1503231 — Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromJulia Lawall <julia.lawall@lip6.fr>
Date2016-10-18 19:10 +0200
SubjectRe: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<stG3L-4JB-7@gated-at.bofh.it>
In reply to#1503224

On Tue, 18 Oct 2016, Vaishali Thakkar wrote:

>
>
> On Tuesday 18 October 2016 10:04 PM, Julia Lawall wrote:
> > I get the following in patch mode that I don't get in context mode:
>
> Hi,
>
> Are you getting same number of devm cases in your report for the context
> and patch mode? [except this case]

The only devm case I get in context mode is:

diff -u -p /var/linuxes/linux-next/drivers/acpi/evged.c
/tmp/nothing/drivers/ac\
pi/evged.c
--- /var/linuxes/linux-next/drivers/acpi/evged.c
+++ /tmp/nothing/drivers/acpi/evged.c
@@ -116,8 +116,6 @@ static acpi_status acpi_ged_request_inte
        if (r.flags & IORESOURCE_IRQ_SHAREABLE)
                irqflags |= IRQF_SHARED;

-       if (devm_request_threaded_irq(dev, irq, NULL, acpi_ged_irq_handler,
-                                     irqflags, "ACPI:Ged", event)) {
                dev_err(dev, "failed to setup event handler for irq %u\n", irq);
                return AE_ERROR;
        }

This one has the property that the first argument is an identifier.  The
other cases seem to have a & expression.  There are around 20 of them.

julia



>
>
> > diff -u -p a/drivers/power/supply/tps65090-charger.c
> > b/drivers/power/supply/tps\
> > 65090-charger.c
> > --- a/drivers/power/supply/tps65090-charger.c
> > +++ b/drivers/power/supply/tps65090-charger.c
> > @@ -311,7 +311,8 @@ static int tps65090_charger_probe(struct
> >
> > 	if (irq != -ENXIO) {
> > 		ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
> > -                       tps65090_charger_isr, 0, "tps65090-charger", cdata);
> > +                       tps65090_charger_isr, IRQF_ONESHOT,
> > +                       "tps65090-charger", cdata);
> > 		if (ret) {
> >                         dev_err(cdata->dev,
> > 				"Unable to register irq %d err %d\n", irq,
> >
> >
> > julia
> >
>
> --
> Vaishali
>

[toc] | [prev] | [next] | [standalone]


#1503237 — Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromVaishali Thakkar <vaishali.thakkar@oracle.com>
Date2016-10-18 19:20 +0200
SubjectRe: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<stGds-4O9-31@gated-at.bofh.it>
In reply to#1503231

On Tuesday 18 October 2016 10:31 PM, Julia Lawall wrote:
> 
> 
> On Tue, 18 Oct 2016, Vaishali Thakkar wrote:
> 
>>
>>
>> On Tuesday 18 October 2016 10:04 PM, Julia Lawall wrote:
>>> I get the following in patch mode that I don't get in context mode:
>>
>> Hi,
>>
>> Are you getting same number of devm cases in your report for the context
>> and patch mode? [except this case]
> 
> The only devm case I get in context mode is:
> 
> diff -u -p /var/linuxes/linux-next/drivers/acpi/evged.c
> /tmp/nothing/drivers/ac\
> pi/evged.c
> --- /var/linuxes/linux-next/drivers/acpi/evged.c
> +++ /tmp/nothing/drivers/acpi/evged.c
> @@ -116,8 +116,6 @@ static acpi_status acpi_ged_request_inte
>         if (r.flags & IORESOURCE_IRQ_SHAREABLE)
>                 irqflags |= IRQF_SHARED;
> 
> -       if (devm_request_threaded_irq(dev, irq, NULL, acpi_ged_irq_handler,
> -                                     irqflags, "ACPI:Ged", event)) {
>                 dev_err(dev, "failed to setup event handler for irq %u\n", irq);
>                 return AE_ERROR;
>         }
> 
> This one has the property that the first argument is an identifier.  The
> other cases seem to have a & expression.  There are around 20 of them.

Although I got the issue with the patches, I am wondering why even context mode
gave result for the identifiers even though they are not initialized? Does that
mean it automatically assumes the type of meta variables even though they are not
initialized? I think spatch gives warnings for such cases. But I am not sure about
the coccicheck.
 
> julia
> 
> 
> 
>>
>>
>>> diff -u -p a/drivers/power/supply/tps65090-charger.c
>>> b/drivers/power/supply/tps\
>>> 65090-charger.c
>>> --- a/drivers/power/supply/tps65090-charger.c
>>> +++ b/drivers/power/supply/tps65090-charger.c
>>> @@ -311,7 +311,8 @@ static int tps65090_charger_probe(struct
>>>
>>> 	if (irq != -ENXIO) {
>>> 		ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
>>> -                       tps65090_charger_isr, 0, "tps65090-charger", cdata);
>>> +                       tps65090_charger_isr, IRQF_ONESHOT,
>>> +                       "tps65090-charger", cdata);
>>> 		if (ret) {
>>>                         dev_err(cdata->dev,
>>> 				"Unable to register irq %d err %d\n", irq,
>>>
>>>
>>> julia
>>>
>>
>> --
>> Vaishali
>>

-- 
Vaishali

[toc] | [prev] | [next] | [standalone]


#1503266 — Re: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results

FromJulia Lawall <julia.lawall@lip6.fr>
Date2016-10-18 20:10 +0200
SubjectRe: [PATCH v2 0/3] Coccinelle: misc: Improve the script for more accurate results
Message-ID<stGZP-5pH-1@gated-at.bofh.it>
In reply to#1503237

On Tue, 18 Oct 2016, Vaishali Thakkar wrote:

>
>
> On Tuesday 18 October 2016 10:31 PM, Julia Lawall wrote:
> >
> >
> > On Tue, 18 Oct 2016, Vaishali Thakkar wrote:
> >
> >>
> >>
> >> On Tuesday 18 October 2016 10:04 PM, Julia Lawall wrote:
> >>> I get the following in patch mode that I don't get in context mode:
> >>
> >> Hi,
> >>
> >> Are you getting same number of devm cases in your report for the context
> >> and patch mode? [except this case]
> >
> > The only devm case I get in context mode is:
> >
> > diff -u -p /var/linuxes/linux-next/drivers/acpi/evged.c
> > /tmp/nothing/drivers/ac\
> > pi/evged.c
> > --- /var/linuxes/linux-next/drivers/acpi/evged.c
> > +++ /tmp/nothing/drivers/acpi/evged.c
> > @@ -116,8 +116,6 @@ static acpi_status acpi_ged_request_inte
> >         if (r.flags & IORESOURCE_IRQ_SHAREABLE)
> >                 irqflags |= IRQF_SHARED;
> >
> > -       if (devm_request_threaded_irq(dev, irq, NULL, acpi_ged_irq_handler,
> > -                                     irqflags, "ACPI:Ged", event)) {
> >                 dev_err(dev, "failed to setup event handler for irq %u\n", irq);
> >                 return AE_ERROR;
> >         }
> >
> > This one has the property that the first argument is an identifier.  The
> > other cases seem to have a & expression.  There are around 20 of them.
>
> Although I got the issue with the patches, I am wondering why even context mode
> gave result for the identifiers even though they are not initialized? Does that
> mean it automatically assumes the type of meta variables even though they are not
> initialized? I think spatch gives warnings for such cases. But I am not sure about
> the coccicheck.

I think that there are a few cases where the names are the ones you chose.

julia


>
> > julia
> >
> >
> >
> >>
> >>
> >>> diff -u -p a/drivers/power/supply/tps65090-charger.c
> >>> b/drivers/power/supply/tps\
> >>> 65090-charger.c
> >>> --- a/drivers/power/supply/tps65090-charger.c
> >>> +++ b/drivers/power/supply/tps65090-charger.c
> >>> @@ -311,7 +311,8 @@ static int tps65090_charger_probe(struct
> >>>
> >>> 	if (irq != -ENXIO) {
> >>> 		ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
> >>> -                       tps65090_charger_isr, 0, "tps65090-charger", cdata);
> >>> +                       tps65090_charger_isr, IRQF_ONESHOT,
> >>> +                       "tps65090-charger", cdata);
> >>> 		if (ret) {
> >>>                         dev_err(cdata->dev,
> >>> 				"Unable to register irq %d err %d\n", irq,
> >>>
> >>>
> >>> julia
> >>>
> >>
> >> --
> >> Vaishali
> >>
>
> --
> Vaishali
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web