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