Messages in this thread Patch in this message | | | From | Lars-Peter Clausen <> | Subject | [PATCH 1/2] coccinelle: Add patch for replacing open-coded PTR_RET | Date | Mon, 19 Dec 2011 14:24:22 +0100 |
| |
The PTR_RET function returns the error value of its parameter if it is an ERR_PTR, otherwise it returns 0. This patch adds a semantic patch which finds open-coded instances of this check and replaces them.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> --- scripts/coccinelle/api/ptr_ret.cocci | 55 ++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) create mode 100644 scripts/coccinelle/api/ptr_ret.cocci
diff --git a/scripts/coccinelle/api/ptr_ret.cocci b/scripts/coccinelle/api/ptr_ret.cocci new file mode 100644 index 0000000..dfd9b1f --- /dev/null +++ b/scripts/coccinelle/api/ptr_ret.cocci @@ -0,0 +1,55 @@ +/// +/// Use PTR_RET function instead of open coding it +/// +// Confidence: High +// Options: +// +// Keywords: IS_ERR, PTR_ERR, PTR_RET +// Version min: 2.6.39 +// + +virtual context +virtual patch +virtual org +virtual report + +@depends on context@ +expression x; +@@ +*if (IS_ERR(x)) +* return PTR_ERR(x); +*return 0; + +@depends on patch@ +expression x; +@@ +-if (IS_ERR(x)) +- return PTR_ERR(x); +-return 0; ++return PTR_RET(x); + +@r depends on org || report@ +expression x; +position p; +@@ + + if (IS_ERR@p(x)) + return PTR_ERR(x); + return 0; + +@script:python depends on org@ +p << r.p; +x << r.x; +@@ + +msg="WARNING PTR_RET can be used with %s" % (x) +msg_safe=msg.replace("[","@(").replace("]",")") +coccilib.org.print_todo(p[0], msg_safe) + +@script:python depends on report@ +p << r.p; +x << r.x; +@@ + +msg="WARNING: PTR_RET can be used with %s" % (x) +coccilib.report.print_report(p[0], msg) -- 1.7.7.3
| |