Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | // 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: http://coccinelle.lip6.fr/ // 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); - } |