On Thu, 20 Jun 2019, Markus Elfring wrote: > From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> > Date: Thu, 20 Jun 2019 19:12:53 +0200 > > The function “devm_ioremap_resource” contains appropriate error reporting. > Thus it can be questionable to present another error message > at other places. > > Provide design options for the adjustment of affected source code > by the means of the semantic patch language (Coccinelle software). > > Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> > --- > .../coccinelle/misc/redundant_dev_err.cocci | 53 +++++++++++++++++++ > 1 file changed, 53 insertions(+) > create mode 100644 scripts/coccinelle/misc/redundant_dev_err.cocci > > diff --git a/scripts/coccinelle/misc/redundant_dev_err.cocci b/scripts/coccinelle/misc/redundant_dev_err.cocci > new file mode 100644 > index 000000000000..aeb228280276 > --- /dev/null > +++ b/scripts/coccinelle/misc/redundant_dev_err.cocci > @@ -0,0 +1,53 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/// Reconsider a function call for redundant error reporting. > +// > +// Keywords: dev_err redundant device error messages > +// Confidence: Medium > + > +virtual patch > +virtual context > +virtual org > +virtual report > + > +@display depends on context@ > +expression e; > +@@ > + e = devm_ioremap_resource(...); > + if (IS_ERR(e)) > + { > +* dev_err(...); > + return (...); > + } Why do you assume that there is exactly one dev_err and one return after the test? > + > +@deletion depends on patch@ > +expression e; > +@@ > + e = devm_ioremap_resource(...); > + if (IS_ERR(e)) > +-{ > +- dev_err(...); > + return (...); > +-} > + > +@or depends on org || report@ > +expression e; > +position p; > +@@ > + e = devm_ioremap_resource(...); > + if (IS_ERR(e)) > + { > + dev_err@p(...); > + return (...); > + } > + > +@script:python to_do depends on org@ > +p << or.p; > +@@ > +coccilib.org.print_todo(p[0], > + "WARNING: An error message is probably not needed here because the previously called function contains appropriate error reporting.") "the previously called function" would be better as "devm_ioremap_resource". julia > + > +@script:python reporting depends on report@ > +p << or.p; > +@@ > +coccilib.report.print_report(p[0], > + "WARNING: An error message is probably not needed here because the previously called function contains appropriate error reporting.") > -- > 2.22.0 > >