1 // SPDX-License-Identifier: GPL-2.0 2 /// Remove dev_err() messages after platform_get_irq*() failures 3 // 4 // Confidence: Medium 5 // Options: --include-headers 6 7 virtual patch 8 virtual context 9 virtual org 10 virtual report 11 12 @depends on context@ 13 expression ret; 14 struct platform_device *E; 15 @@ 16 17 ret = 18 ( 19 platform_get_irq 20 | 21 platform_get_irq_byname 22 )(E, ...); 23 24 if ( \( ret < 0 \| ret <= 0 \) ) 25 { 26 ( 27 if (ret != -EPROBE_DEFER) 28 { ... 29 *dev_err(...); 30 ... } 31 | 32 ... 33 *dev_err(...); 34 ) 35 ... 36 } 37 38 @depends on patch@ 39 expression ret; 40 struct platform_device *E; 41 @@ 42 43 ret = 44 ( 45 platform_get_irq 46 | 47 platform_get_irq_byname 48 )(E, ...); 49 50 if ( \( ret < 0 \| ret <= 0 \) ) 51 { 52 ( 53 -if (ret != -EPROBE_DEFER) 54 -{ ... 55 -dev_err(...); 56 -... } 57 | 58 ... 59 -dev_err(...); 60 ) 61 ... 62 } 63 64 @r depends on org || report@ 65 position p1; 66 expression ret; 67 struct platform_device *E; 68 @@ 69 70 ret = 71 ( 72 platform_get_irq 73 | 74 platform_get_irq_byname 75 )(E, ...); 76 77 if ( \( ret < 0 \| ret <= 0 \) ) 78 { 79 ( 80 if (ret != -EPROBE_DEFER) 81 { ... 82 dev_err@p1(...); 83 ... } 84 | 85 ... 86 dev_err@p1(...); 87 ) 88 ... 89 } 90 91 @script:python depends on org@ 92 p1 << r.p1; 93 @@ 94 95 cocci.print_main(p1) 96 97 @script:python depends on report@ 98 p1 << r.p1; 99 @@ 100 101 msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line) 102 coccilib.report.print_report(p1[0],msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.