of: MSI: Simplify irqdomain lookup
[linux/fpc-iii.git] / scripts / coccinelle / misc / irqf_oneshot.cocci
blobb421150a2effcd925e83758bbf609d038e67ac1b
1 /// Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
2 /// threaded IRQs without a primary handler need to be requested with
3 /// IRQF_ONESHOT, otherwise the request will fail.
4 ///
5 /// So pass the IRQF_ONESHOT flag in this case.
6 ///
7 //
8 // Confidence: Good
9 // Comments:
10 // Options: --no-includes
12 virtual patch
13 virtual context
14 virtual org
15 virtual report
17 @r1@
18 expression dev;
19 expression irq;
20 expression thread_fn;
21 expression flags;
22 position p;
25 request_threaded_irq@p(irq, NULL, thread_fn,
27 flags | IRQF_ONESHOT
29 IRQF_ONESHOT
31 , ...)
33 devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
35 flags | IRQF_ONESHOT
37 IRQF_ONESHOT
39 , ...)
42 @depends on patch@
43 expression dev;
44 expression irq;
45 expression thread_fn;
46 expression flags;
47 position p != r1.p;
50 request_threaded_irq@p(irq, NULL, thread_fn,
53 +IRQF_ONESHOT
55 -flags
56 +flags | IRQF_ONESHOT
58 , ...)
60 devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
63 +IRQF_ONESHOT
65 -flags
66 +flags | IRQF_ONESHOT
68 , ...)
71 @depends on context@
72 position p != r1.p;
74 *request_threaded_irq@p(...)
76 @match depends on report || org@
77 expression irq;
78 position p != r1.p;
80 request_threaded_irq@p(irq, NULL, ...)
82 @script:python depends on org@
83 p << match.p;
85 msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT"
86 coccilib.org.print_todo(p[0],msg)
88 @script:python depends on report@
89 p << match.p;
91 msg = "ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT"
92 coccilib.report.print_report(p[0],msg)