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