1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /// Use WARN(1,...) rather than printk followe 2 /// Use WARN(1,...) rather than printk followed by WARN_ON(1) 3 /// 3 /// 4 // Confidence: High 4 // Confidence: High 5 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP 5 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. 6 // Copyright: (C) 2012 Gilles Muller, INRIA/Li 6 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. 7 // URL: https://coccinelle.gitlabpages.inria.f 7 // URL: https://coccinelle.gitlabpages.inria.fr/website 8 // Comments: 8 // Comments: 9 // Options: --no-includes --include-headers 9 // Options: --no-includes --include-headers 10 10 11 virtual patch 11 virtual patch 12 virtual context 12 virtual context 13 virtual org 13 virtual org 14 virtual report 14 virtual report 15 15 16 @bad1@ 16 @bad1@ 17 position p; 17 position p; 18 @@ 18 @@ 19 19 20 printk(...); 20 printk(...); 21 printk@p(...); 21 printk@p(...); 22 WARN_ON(1); 22 WARN_ON(1); 23 23 24 @r1 depends on context || report || org@ 24 @r1 depends on context || report || org@ 25 position p != bad1.p; 25 position p != bad1.p; 26 @@ 26 @@ 27 27 28 printk@p(...); 28 printk@p(...); 29 *WARN_ON(1); 29 *WARN_ON(1); 30 30 31 @script:python depends on org@ 31 @script:python depends on org@ 32 p << r1.p; 32 p << r1.p; 33 @@ 33 @@ 34 34 35 cocci.print_main("printk + WARN_ON can be just 35 cocci.print_main("printk + WARN_ON can be just WARN",p) 36 36 37 @script:python depends on report@ 37 @script:python depends on report@ 38 p << r1.p; 38 p << r1.p; 39 @@ 39 @@ 40 40 41 msg = "SUGGESTION: printk + WARN_ON can be jus 41 msg = "SUGGESTION: printk + WARN_ON can be just WARN" 42 coccilib.report.print_report(p[0],msg) 42 coccilib.report.print_report(p[0],msg) 43 43 44 @ok1 depends on patch@ 44 @ok1 depends on patch@ 45 expression list es; 45 expression list es; 46 position p != bad1.p; 46 position p != bad1.p; 47 @@ 47 @@ 48 48 49 -printk@p( 49 -printk@p( 50 +WARN(1, 50 +WARN(1, 51 es); 51 es); 52 -WARN_ON(1); 52 -WARN_ON(1); 53 53 54 @depends on patch@ 54 @depends on patch@ 55 expression list ok1.es; 55 expression list ok1.es; 56 @@ 56 @@ 57 57 58 if (...) 58 if (...) 59 - { 59 - { 60 WARN(1,es); 60 WARN(1,es); 61 - } 61 - } 62 62 63 // ------------------------------------------- 63 // -------------------------------------------------------------------- 64 64 65 @bad2@ 65 @bad2@ 66 position p; 66 position p; 67 @@ 67 @@ 68 68 69 printk(...); 69 printk(...); 70 printk@p(...); 70 printk@p(...); 71 WARN_ON_ONCE(1); 71 WARN_ON_ONCE(1); 72 72 73 @r2 depends on context || report || org@ 73 @r2 depends on context || report || org@ 74 position p != bad1.p; 74 position p != bad1.p; 75 @@ 75 @@ 76 76 77 printk@p(...); 77 printk@p(...); 78 *WARN_ON_ONCE(1); 78 *WARN_ON_ONCE(1); 79 79 80 @script:python depends on org@ 80 @script:python depends on org@ 81 p << r2.p; 81 p << r2.p; 82 @@ 82 @@ 83 83 84 cocci.print_main("printk + WARN_ON_ONCE can be 84 cocci.print_main("printk + WARN_ON_ONCE can be just WARN_ONCE",p) 85 85 86 @script:python depends on report@ 86 @script:python depends on report@ 87 p << r2.p; 87 p << r2.p; 88 @@ 88 @@ 89 89 90 msg = "SUGGESTION: printk + WARN_ON_ONCE can b 90 msg = "SUGGESTION: printk + WARN_ON_ONCE can be just WARN_ONCE" 91 coccilib.report.print_report(p[0],msg) 91 coccilib.report.print_report(p[0],msg) 92 92 93 @ok2 depends on patch@ 93 @ok2 depends on patch@ 94 expression list es; 94 expression list es; 95 position p != bad2.p; 95 position p != bad2.p; 96 @@ 96 @@ 97 97 98 -printk@p( 98 -printk@p( 99 +WARN_ONCE(1, 99 +WARN_ONCE(1, 100 es); 100 es); 101 -WARN_ON_ONCE(1); 101 -WARN_ON_ONCE(1); 102 102 103 @depends on patch@ 103 @depends on patch@ 104 expression list ok2.es; 104 expression list ok2.es; 105 @@ 105 @@ 106 106 107 if (...) 107 if (...) 108 - { 108 - { 109 WARN_ONCE(1,es); 109 WARN_ONCE(1,es); 110 - } 110 - }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.