Linux 4.1.18
[linux/fpc-iii.git] / scripts / coccinelle / misc / irqf_oneshot.cocci
bloba24a754ae1d7283f39e09541d41384b9c88773a2
1 /// Make sure threaded IRQs without a primary handler are always request with
2 /// IRQF_ONESHOT
3 ///
4 //
5 // Confidence: Good
6 // Comments:
7 // Options: --no-includes
9 virtual patch
10 virtual context
11 virtual org
12 virtual report
14 @r1@
15 expression dev;
16 expression irq;
17 expression thread_fn;
18 expression flags;
19 position p;
22 request_threaded_irq@p(irq, NULL, thread_fn,
24 flags | IRQF_ONESHOT
26 IRQF_ONESHOT
28 , ...)
30 devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
32 flags | IRQF_ONESHOT
34 IRQF_ONESHOT
36 , ...)
39 @depends on patch@
40 expression dev;
41 expression irq;
42 expression thread_fn;
43 expression flags;
44 position p != r1.p;
47 request_threaded_irq@p(irq, NULL, thread_fn,
50 +IRQF_ONESHOT
52 -flags
53 +flags | IRQF_ONESHOT
55 , ...)
57 devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
60 +IRQF_ONESHOT
62 -flags
63 +flags | IRQF_ONESHOT
65 , ...)
68 @depends on context@
69 position p != r1.p;
71 *request_threaded_irq@p(...)
73 @match depends on report || org@
74 expression irq;
75 position p != r1.p;
77 request_threaded_irq@p(irq, NULL, ...)
79 @script:python depends on org@
80 p << match.p;
82 msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT"
83 coccilib.org.print_todo(p[0],msg)
85 @script:python depends on report@
86 p << match.p;
88 msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT"
89 coccilib.report.print_report(p[0],msg)