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 7virtual patch 8virtual context 9virtual org 10virtual report 11 12@depends on context@ 13expression ret; 14struct platform_device *E; 15@@ 16 17ret = 18( 19platform_get_irq 20| 21platform_get_irq_byname 22)(E, ...); 23 24if ( \( ret < 0 \| ret <= 0 \) ) 25{ 26( 27if (ret != -EPROBE_DEFER) 28{ ... 29*dev_err(...); 30... } 31| 32... 33*dev_err(...); 34) 35... 36} 37 38@depends on patch@ 39expression ret; 40struct platform_device *E; 41@@ 42 43ret = 44( 45platform_get_irq 46| 47platform_get_irq_byname 48)(E, ...); 49 50if ( \( 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@ 65position p1; 66expression ret; 67struct platform_device *E; 68@@ 69 70ret = 71( 72platform_get_irq 73| 74platform_get_irq_byname 75)(E, ...); 76 77if ( \( ret < 0 \| ret <= 0 \) ) 78{ 79( 80if (ret != -EPROBE_DEFER) 81{ ... 82dev_err@p1(...); 83... } 84| 85... 86dev_err@p1(...); 87) 88... 89} 90 91@script:python depends on org@ 92p1 << r.p1; 93@@ 94 95cocci.print_main(p1) 96 97@script:python depends on report@ 98p1 << r.p1; 99@@ 100 101msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line) 102coccilib.report.print_report(p1[0],msg) 103