162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/// Remove dev_err() messages after platform_get_irq*() failures 362306a36Sopenharmony_ci// 462306a36Sopenharmony_ci// Confidence: Medium 562306a36Sopenharmony_ci// Options: --include-headers 662306a36Sopenharmony_ci 762306a36Sopenharmony_civirtual patch 862306a36Sopenharmony_civirtual context 962306a36Sopenharmony_civirtual org 1062306a36Sopenharmony_civirtual report 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci@depends on context@ 1362306a36Sopenharmony_ciexpression ret; 1462306a36Sopenharmony_cistruct platform_device *E; 1562306a36Sopenharmony_ci@@ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciret = 1862306a36Sopenharmony_ci( 1962306a36Sopenharmony_ciplatform_get_irq 2062306a36Sopenharmony_ci| 2162306a36Sopenharmony_ciplatform_get_irq_byname 2262306a36Sopenharmony_ci)(E, ...); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciif ( \( ret < 0 \| ret <= 0 \) ) 2562306a36Sopenharmony_ci{ 2662306a36Sopenharmony_ci( 2762306a36Sopenharmony_ciif (ret != -EPROBE_DEFER) 2862306a36Sopenharmony_ci{ ... 2962306a36Sopenharmony_ci*dev_err(...); 3062306a36Sopenharmony_ci... } 3162306a36Sopenharmony_ci| 3262306a36Sopenharmony_ci... 3362306a36Sopenharmony_ci*dev_err(...); 3462306a36Sopenharmony_ci) 3562306a36Sopenharmony_ci... 3662306a36Sopenharmony_ci} 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci@depends on patch@ 3962306a36Sopenharmony_ciexpression ret; 4062306a36Sopenharmony_cistruct platform_device *E; 4162306a36Sopenharmony_ci@@ 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciret = 4462306a36Sopenharmony_ci( 4562306a36Sopenharmony_ciplatform_get_irq 4662306a36Sopenharmony_ci| 4762306a36Sopenharmony_ciplatform_get_irq_byname 4862306a36Sopenharmony_ci)(E, ...); 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciif ( \( ret < 0 \| ret <= 0 \) ) 5162306a36Sopenharmony_ci{ 5262306a36Sopenharmony_ci( 5362306a36Sopenharmony_ci-if (ret != -EPROBE_DEFER) 5462306a36Sopenharmony_ci-{ ... 5562306a36Sopenharmony_ci-dev_err(...); 5662306a36Sopenharmony_ci-... } 5762306a36Sopenharmony_ci| 5862306a36Sopenharmony_ci... 5962306a36Sopenharmony_ci-dev_err(...); 6062306a36Sopenharmony_ci) 6162306a36Sopenharmony_ci... 6262306a36Sopenharmony_ci} 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci@r depends on org || report@ 6562306a36Sopenharmony_ciposition p1; 6662306a36Sopenharmony_ciexpression ret; 6762306a36Sopenharmony_cistruct platform_device *E; 6862306a36Sopenharmony_ci@@ 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciret = 7162306a36Sopenharmony_ci( 7262306a36Sopenharmony_ciplatform_get_irq 7362306a36Sopenharmony_ci| 7462306a36Sopenharmony_ciplatform_get_irq_byname 7562306a36Sopenharmony_ci)(E, ...); 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciif ( \( ret < 0 \| ret <= 0 \) ) 7862306a36Sopenharmony_ci{ 7962306a36Sopenharmony_ci( 8062306a36Sopenharmony_ciif (ret != -EPROBE_DEFER) 8162306a36Sopenharmony_ci{ ... 8262306a36Sopenharmony_cidev_err@p1(...); 8362306a36Sopenharmony_ci... } 8462306a36Sopenharmony_ci| 8562306a36Sopenharmony_ci... 8662306a36Sopenharmony_cidev_err@p1(...); 8762306a36Sopenharmony_ci) 8862306a36Sopenharmony_ci... 8962306a36Sopenharmony_ci} 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci@script:python depends on org@ 9262306a36Sopenharmony_cip1 << r.p1; 9362306a36Sopenharmony_ci@@ 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_cicocci.print_main(p1) 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci@script:python depends on report@ 9862306a36Sopenharmony_cip1 << r.p1; 9962306a36Sopenharmony_ci@@ 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_cimsg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line) 10262306a36Sopenharmony_cicoccilib.report.print_report(p1[0],msg) 103