/// /// Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR /// // Confidence: High // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. // URL: http://coccinelle.lip6.fr/ // Options: --no-includes --include-headers // // Keywords: ERR_PTR, PTR_ERR, PTR_ERR_OR_ZERO // Version min: 2.6.39 // virtual context virtual patch virtual org virtual report @depends on patch@ expression ptr; @@ - if (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0; + return PTR_ERR_OR_ZERO(ptr); @depends on patch@ expression ptr; @@ - if (IS_ERR(ptr)) return PTR_ERR(ptr); return 0; + return PTR_ERR_OR_ZERO(ptr); @depends on patch@ expression ptr; @@ - (IS_ERR(ptr) ? PTR_ERR(ptr) : 0) + PTR_ERR_OR_ZERO(ptr) @r1 depends on !patch@ expression ptr; position p1; @@ * if@p1 (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0; @r2 depends on !patch@ expression ptr; position p2; @@ * if@p2 (IS_ERR(ptr)) return PTR_ERR(ptr); return 0; @r3 depends on !patch@ expression ptr; position p3; @@ * IS_ERR@p3(ptr) ? PTR_ERR(ptr) : 0 @script:python depends on org@ p << r1.p1; @@ coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") @script:python depends on org@ p << r2.p2; @@ coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") @script:python depends on org@ p << r3.p3; @@ coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") @script:python depends on report@ p << r1.p1; @@ coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") @script:python depends on report@ p << r2.p2; @@ coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") @script:python depends on report@ p << r3.p3; @@ coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used") 801a73ff36d416a7ede54229b231e1d'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/include/uapi/drm/savage_drm.h?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/include/uapi/drm/savage_drm.h?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/include/uapi/drm/savage_drm.h'> <input type='hidden' name='id' value='d9f1f61c0801a73ff36d416a7ede54229b231e1d'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/include?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>include</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>uapi</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/drm?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>drm</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/drm/savage_drm.h?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d'>savage_drm.h</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/drm/savage_drm.h?id=d9f1f61c0801a73ff36d416a7ede54229b231e1d&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>