xref: /openbmc/linux/scripts/coccinelle/api/err_cast.cocci (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
17f904d7eSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-only
299d653d4SNicolas Palix///
399d653d4SNicolas Palix/// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
499d653d4SNicolas Palix///
599d653d4SNicolas Palix// Confidence: High
67f904d7eSThomas Gleixner// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
77f904d7eSThomas Gleixner// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
87f904d7eSThomas Gleixner// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
9*f01701ceSJulia Lawall// URL: https://coccinelle.gitlabpages.inria.fr/website
1099d653d4SNicolas Palix// Options:
1199d653d4SNicolas Palix//
1299d653d4SNicolas Palix// Keywords: ERR_PTR, PTR_ERR, ERR_CAST
1399d653d4SNicolas Palix// Version min: 2.6.25
1499d653d4SNicolas Palix//
1599d653d4SNicolas Palix
1699d653d4SNicolas Palixvirtual context
1799d653d4SNicolas Palixvirtual patch
1899d653d4SNicolas Palixvirtual org
1999d653d4SNicolas Palixvirtual report
2099d653d4SNicolas Palix
2199d653d4SNicolas Palix
2299d653d4SNicolas Palix@ depends on context && !patch && !org && !report@
2399d653d4SNicolas Palixexpression x;
2499d653d4SNicolas Palix@@
2599d653d4SNicolas Palix
2699d653d4SNicolas Palix* ERR_PTR(PTR_ERR(x))
2799d653d4SNicolas Palix
2899d653d4SNicolas Palix@ depends on !context && patch && !org && !report @
2999d653d4SNicolas Palixexpression x;
3099d653d4SNicolas Palix@@
3199d653d4SNicolas Palix
3299d653d4SNicolas Palix- ERR_PTR(PTR_ERR(x))
3399d653d4SNicolas Palix+ ERR_CAST(x)
3499d653d4SNicolas Palix
3599d653d4SNicolas Palix@r depends on !context && !patch && (org || report)@
3699d653d4SNicolas Palixexpression x;
3799d653d4SNicolas Palixposition p;
3899d653d4SNicolas Palix@@
3999d653d4SNicolas Palix
4099d653d4SNicolas Palix ERR_PTR@p(PTR_ERR(x))
4199d653d4SNicolas Palix
4299d653d4SNicolas Palix@script:python depends on org@
4399d653d4SNicolas Palixp << r.p;
4499d653d4SNicolas Palixx << r.x;
4599d653d4SNicolas Palix@@
4699d653d4SNicolas Palix
4799d653d4SNicolas Palixmsg="WARNING ERR_CAST can be used with %s" % (x)
4899d653d4SNicolas Palixmsg_safe=msg.replace("[","@(").replace("]",")")
4999d653d4SNicolas Palixcoccilib.org.print_todo(p[0], msg_safe)
5099d653d4SNicolas Palix
5199d653d4SNicolas Palix@script:python depends on report@
5299d653d4SNicolas Palixp << r.p;
5399d653d4SNicolas Palixx << r.x;
5499d653d4SNicolas Palix@@
5599d653d4SNicolas Palix
5699d653d4SNicolas Palixmsg="WARNING: ERR_CAST can be used with %s" % (x)
5799d653d4SNicolas Palixcoccilib.report.print_report(p[0], msg)
58