Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /// Remove dev_err() messages after platform_get_irq*() failures
0003 //
0004 // Confidence: Medium
0005 // Options: --include-headers
0006 
0007 virtual patch
0008 virtual context
0009 virtual org
0010 virtual report
0011 
0012 @depends on context@
0013 expression ret;
0014 struct platform_device *E;
0015 @@
0016 
0017 ret =
0018 (
0019 platform_get_irq
0020 |
0021 platform_get_irq_byname
0022 )(E, ...);
0023 
0024 if ( \( ret < 0 \| ret <= 0 \) )
0025 {
0026 (
0027 if (ret != -EPROBE_DEFER)
0028 { ...
0029 *dev_err(...);
0030 ... }
0031 |
0032 ...
0033 *dev_err(...);
0034 )
0035 ...
0036 }
0037 
0038 @depends on patch@
0039 expression ret;
0040 struct platform_device *E;
0041 @@
0042 
0043 ret =
0044 (
0045 platform_get_irq
0046 |
0047 platform_get_irq_byname
0048 )(E, ...);
0049 
0050 if ( \( ret < 0 \| ret <= 0 \) )
0051 {
0052 (
0053 -if (ret != -EPROBE_DEFER)
0054 -{ ...
0055 -dev_err(...);
0056 -... }
0057 |
0058 ...
0059 -dev_err(...);
0060 )
0061 ...
0062 }
0063 
0064 @r depends on org || report@
0065 position p1;
0066 expression ret;
0067 struct platform_device *E;
0068 @@
0069 
0070 ret =
0071 (
0072 platform_get_irq
0073 |
0074 platform_get_irq_byname
0075 )(E, ...);
0076 
0077 if ( \( ret < 0 \| ret <= 0 \) )
0078 {
0079 (
0080 if (ret != -EPROBE_DEFER)
0081 { ...
0082 dev_err@p1(...);
0083 ... }
0084 |
0085 ...
0086 dev_err@p1(...);
0087 )
0088 ...
0089 }
0090 
0091 @script:python depends on org@
0092 p1 << r.p1;
0093 @@
0094 
0095 cocci.print_main(p1)
0096 
0097 @script:python depends on report@
0098 p1 << r.p1;
0099 @@
0100 
0101 msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line)
0102 coccilib.report.print_report(p1[0],msg)