1// SPDX-License-Identifier: GPL-2.0-only 2/// 3/// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...)) 4/// 5// Confidence: High 6// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. 7// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. 8// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. 9// URL: https://coccinelle.gitlabpages.inria.fr/website 10// Options: 11// 12// Keywords: ERR_PTR, PTR_ERR, ERR_CAST 13// Version min: 2.6.25 14// 15 16virtual context 17virtual patch 18virtual org 19virtual report 20 21 22@ depends on context && !patch && !org && !report@ 23expression x; 24@@ 25 26* ERR_PTR(PTR_ERR(x)) 27 28@ depends on !context && patch && !org && !report @ 29expression x; 30@@ 31 32- ERR_PTR(PTR_ERR(x)) 33+ ERR_CAST(x) 34 35@r depends on !context && !patch && (org || report)@ 36expression x; 37position p; 38@@ 39 40 ERR_PTR@p(PTR_ERR(x)) 41 42@script:python depends on org@ 43p << r.p; 44x << r.x; 45@@ 46 47msg="WARNING ERR_CAST can be used with %s" % (x) 48msg_safe=msg.replace("[","@(").replace("]",")") 49coccilib.org.print_todo(p[0], msg_safe) 50 51@script:python depends on report@ 52p << r.p; 53x << r.x; 54@@ 55 56msg="WARNING: ERR_CAST can be used with %s" % (x) 57coccilib.report.print_report(p[0], msg) 58