17f904d7eSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-only 2ad99ac2fSJulia Lawall/// Use WARN(1,...) rather than printk followed by WARN_ON(1) 3ad99ac2fSJulia Lawall/// 4ad99ac2fSJulia Lawall// Confidence: High 57f904d7eSThomas Gleixner// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. 67f904d7eSThomas Gleixner// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. 7*f01701ceSJulia Lawall// URL: https://coccinelle.gitlabpages.inria.fr/website 8ad99ac2fSJulia Lawall// Comments: 993f14468SNicolas Palix// Options: --no-includes --include-headers 10ad99ac2fSJulia Lawall 11ad99ac2fSJulia Lawallvirtual patch 12ad99ac2fSJulia Lawallvirtual context 13ad99ac2fSJulia Lawallvirtual org 14ad99ac2fSJulia Lawallvirtual report 15ad99ac2fSJulia Lawall 16ad99ac2fSJulia Lawall@bad1@ 17ad99ac2fSJulia Lawallposition p; 18ad99ac2fSJulia Lawall@@ 19ad99ac2fSJulia Lawall 20ad99ac2fSJulia Lawallprintk(...); 21ad99ac2fSJulia Lawallprintk@p(...); 22ad99ac2fSJulia LawallWARN_ON(1); 23ad99ac2fSJulia Lawall 24ad99ac2fSJulia Lawall@r1 depends on context || report || org@ 25ad99ac2fSJulia Lawallposition p != bad1.p; 26ad99ac2fSJulia Lawall@@ 27ad99ac2fSJulia Lawall 28ad99ac2fSJulia Lawall printk@p(...); 29ad99ac2fSJulia Lawall*WARN_ON(1); 30ad99ac2fSJulia Lawall 31ad99ac2fSJulia Lawall@script:python depends on org@ 32ad99ac2fSJulia Lawallp << r1.p; 33ad99ac2fSJulia Lawall@@ 34ad99ac2fSJulia Lawall 35ad99ac2fSJulia Lawallcocci.print_main("printk + WARN_ON can be just WARN",p) 36ad99ac2fSJulia Lawall 37ad99ac2fSJulia Lawall@script:python depends on report@ 38ad99ac2fSJulia Lawallp << r1.p; 39ad99ac2fSJulia Lawall@@ 40ad99ac2fSJulia Lawall 41ad99ac2fSJulia Lawallmsg = "SUGGESTION: printk + WARN_ON can be just WARN" 42ad99ac2fSJulia Lawallcoccilib.report.print_report(p[0],msg) 43ad99ac2fSJulia Lawall 44ad99ac2fSJulia Lawall@ok1 depends on patch@ 45ad99ac2fSJulia Lawallexpression list es; 46ad99ac2fSJulia Lawallposition p != bad1.p; 47ad99ac2fSJulia Lawall@@ 48ad99ac2fSJulia Lawall 49ad99ac2fSJulia Lawall-printk@p( 50ad99ac2fSJulia Lawall+WARN(1, 51ad99ac2fSJulia Lawall es); 52ad99ac2fSJulia Lawall-WARN_ON(1); 53ad99ac2fSJulia Lawall 54ad99ac2fSJulia Lawall@depends on patch@ 55ad99ac2fSJulia Lawallexpression list ok1.es; 56ad99ac2fSJulia Lawall@@ 57ad99ac2fSJulia Lawall 58ad99ac2fSJulia Lawallif (...) 59ad99ac2fSJulia Lawall- { 60ad99ac2fSJulia Lawall WARN(1,es); 61ad99ac2fSJulia Lawall- } 62ad99ac2fSJulia Lawall 63ad99ac2fSJulia Lawall// -------------------------------------------------------------------- 64ad99ac2fSJulia Lawall 65ad99ac2fSJulia Lawall@bad2@ 66ad99ac2fSJulia Lawallposition p; 67ad99ac2fSJulia Lawall@@ 68ad99ac2fSJulia Lawall 69ad99ac2fSJulia Lawallprintk(...); 70ad99ac2fSJulia Lawallprintk@p(...); 71ad99ac2fSJulia LawallWARN_ON_ONCE(1); 72ad99ac2fSJulia Lawall 73ad99ac2fSJulia Lawall@r2 depends on context || report || org@ 74ad99ac2fSJulia Lawallposition p != bad1.p; 75ad99ac2fSJulia Lawall@@ 76ad99ac2fSJulia Lawall 77ad99ac2fSJulia Lawall printk@p(...); 78ad99ac2fSJulia Lawall*WARN_ON_ONCE(1); 79ad99ac2fSJulia Lawall 80ad99ac2fSJulia Lawall@script:python depends on org@ 81ad99ac2fSJulia Lawallp << r2.p; 82ad99ac2fSJulia Lawall@@ 83ad99ac2fSJulia Lawall 84ad99ac2fSJulia Lawallcocci.print_main("printk + WARN_ON_ONCE can be just WARN_ONCE",p) 85ad99ac2fSJulia Lawall 86ad99ac2fSJulia Lawall@script:python depends on report@ 87ad99ac2fSJulia Lawallp << r2.p; 88ad99ac2fSJulia Lawall@@ 89ad99ac2fSJulia Lawall 90ad99ac2fSJulia Lawallmsg = "SUGGESTION: printk + WARN_ON_ONCE can be just WARN_ONCE" 91ad99ac2fSJulia Lawallcoccilib.report.print_report(p[0],msg) 92ad99ac2fSJulia Lawall 93ad99ac2fSJulia Lawall@ok2 depends on patch@ 94ad99ac2fSJulia Lawallexpression list es; 95ad99ac2fSJulia Lawallposition p != bad2.p; 96ad99ac2fSJulia Lawall@@ 97ad99ac2fSJulia Lawall 98ad99ac2fSJulia Lawall-printk@p( 99ad99ac2fSJulia Lawall+WARN_ONCE(1, 100ad99ac2fSJulia Lawall es); 101ad99ac2fSJulia Lawall-WARN_ON_ONCE(1); 102ad99ac2fSJulia Lawall 103ad99ac2fSJulia Lawall@depends on patch@ 104ad99ac2fSJulia Lawallexpression list ok2.es; 105ad99ac2fSJulia Lawall@@ 106ad99ac2fSJulia Lawall 107ad99ac2fSJulia Lawallif (...) 108ad99ac2fSJulia Lawall- { 109ad99ac2fSJulia Lawall WARN_ONCE(1,es); 110ad99ac2fSJulia Lawall- } 111