Messages in this thread | | | Date | Sun, 1 Jul 2012 07:39:24 -0400 (EDT) | From | Julia Lawall <> | Subject | Re: [Cocci] [PATCH] scripts/coccinelle: Find threaded IRQs requests which are missing IRQF_ONESHOT |
| |
On Sun, 1 Jul 2012, Lars-Peter Clausen wrote:
> Since commit 1c6c69525b ("genirq: Reject bogus threaded irq requests") threaded > IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise > the request will fail. This semantic patch will help to statically identify > (and fix) such cases. > > Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> --- > scripts/coccinelle/misc/irqf_oneshot.cocci | 65 ++++++++++++++++++++++++++++ > 1 file changed, 65 insertions(+) > create mode 100644 scripts/coccinelle/misc/irqf_oneshot.cocci > > diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci > new file mode 100644 > index 0000000..6cfde94 > --- /dev/null > +++ b/scripts/coccinelle/misc/irqf_oneshot.cocci > @@ -0,0 +1,65 @@ > +/// Make sure threaded IRQs without a primary handler are always request with > +/// IRQF_ONESHOT > +/// > +// > +// Confidence: Good > +// Comments: > +// Options: --no-includes > + > +virtual patch > +virtual context > +virtual org > +virtual report > + > +@r1@ > +expression irq; > +expression thread_fn; > +expression flags; > +position p; > +@@ > +request_threaded_irq@p(irq, NULL, thread_fn, > +( > +flags | IRQF_ONESHOT > +| > +IRQF_ONESHOT > +) > +, ...) > + > +@depends on patch@ > +expression irq; > +expression thread_fn; > +expression flags; > +position p != r1.p; > +@@ > +request_threaded_irq@p(irq, NULL, thread_fn, > +( > +-0 > ++IRQF_ONESHOT > +| > +-flags > ++flags | IRQF_ONESHOT > +) > +, ...) > + > +@depends on context@ > +position p != r1.p; > +@@ > +*request_threaded_irq@p(...) > + > +@match depends on report || org@ > +expression irq; > +position p != r1.p; > +@@ > +request_threaded_irq@p(irq, NULL, ...) > + > +@script:python depends on org@ > +p << match.p; > +@@ > +msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT" > +coccilib.org.print_todo(p[0],msg) > + > +@script:python depends on report@ > +p << match.p; > +@@ > +msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT" > +coccilib.report.print_report(p[0],msg) > -- > 1.7.10 > > _______________________________________________ > Cocci mailing list > Cocci@diku.dk > http://lists.diku.dk/mailman/listinfo/cocci > (Web access from inside DIKUs LAN only) >
| |