| // SPDX-License-Identifier: GPL-2.0-only |
| /// Use WARN(1,...) rather than printk followed by WARN_ON(1) |
| /// |
| // Confidence: High |
| // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. |
| // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. |
| // URL: https://coccinelle.gitlabpages.inria.fr/website |
| // Comments: |
| // Options: --no-includes --include-headers |
| |
| virtual patch |
| virtual context |
| virtual org |
| virtual report |
| |
| @bad1@ |
| position p; |
| @@ |
| |
| printk(...); |
| printk@p(...); |
| WARN_ON(1); |
| |
| @r1 depends on context || report || org@ |
| position p != bad1.p; |
| @@ |
| |
| printk@p(...); |
| *WARN_ON(1); |
| |
| @script:python depends on org@ |
| p << r1.p; |
| @@ |
| |
| cocci.print_main("printk + WARN_ON can be just WARN",p) |
| |
| @script:python depends on report@ |
| p << r1.p; |
| @@ |
| |
| msg = "SUGGESTION: printk + WARN_ON can be just WARN" |
| coccilib.report.print_report(p[0],msg) |
| |
| @ok1 depends on patch@ |
| expression list es; |
| position p != bad1.p; |
| @@ |
| |
| -printk@p( |
| +WARN(1, |
| es); |
| -WARN_ON(1); |
| |
| @depends on patch@ |
| expression list ok1.es; |
| @@ |
| |
| if (...) |
| - { |
| WARN(1,es); |
| - } |
| |
| // -------------------------------------------------------------------- |
| |
| @bad2@ |
| position p; |
| @@ |
| |
| printk(...); |
| printk@p(...); |
| WARN_ON_ONCE(1); |
| |
| @r2 depends on context || report || org@ |
| position p != bad1.p; |
| @@ |
| |
| printk@p(...); |
| *WARN_ON_ONCE(1); |
| |
| @script:python depends on org@ |
| p << r2.p; |
| @@ |
| |
| cocci.print_main("printk + WARN_ON_ONCE can be just WARN_ONCE",p) |
| |
| @script:python depends on report@ |
| p << r2.p; |
| @@ |
| |
| msg = "SUGGESTION: printk + WARN_ON_ONCE can be just WARN_ONCE" |
| coccilib.report.print_report(p[0],msg) |
| |
| @ok2 depends on patch@ |
| expression list es; |
| position p != bad2.p; |
| @@ |
| |
| -printk@p( |
| +WARN_ONCE(1, |
| es); |
| -WARN_ON_ONCE(1); |
| |
| @depends on patch@ |
| expression list ok2.es; |
| @@ |
| |
| if (...) |
| - { |
| WARN_ONCE(1,es); |
| - } |