From: Denis Efremov <efremov@linux.com>
To: linux-kernel@vger.kernel.org
Cc: "Denis Efremov" <efremov@linux.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Anton Altaparmakov" <anton@tuxera.com>,
"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Boris Pismenny" <borisp@mellanox.com>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
"David S. Miller" <davem@davemloft.net>,
"Dennis Dalessandro" <dennis.dalessandro@intel.com>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Inaky Perez-Gonzalez" <inaky.perez-gonzalez@intel.com>,
"Juergen Gross" <jgross@suse.com>,
"Leon Romanovsky" <leon@kernel.org>,
"Mike Marciniszyn" <mike.marciniszyn@intel.com>,
"Pali Rohár" <pali.rohar@gmail.com>,
"Rob Clark" <robdclark@gmail.com>,
"Saeed Mahameed" <saeedm@mellanox.com>,
"Sean Paul" <sean@poorly.run>,
linux-arm-msm@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-input@vger.kernel.org,
linux-ntfs-dev@lists.sourceforge.net, linux-rdma@vger.kernel.org,
linux-wimax@intel.com, linux-xfs@vger.kernel.org,
xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
dri-devel@lists.freedesktop.org, "Joe Perches" <joe@perches.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Andy Whitcroft" <apw@canonical.com>
Subject: [PATCH v3 01/11] checkpatch: check for nested (un)?likely() calls
Date: Thu, 29 Aug 2019 19:50:15 +0300 [thread overview]
Message-ID: <20190829165025.15750-1-efremov@linux.com> (raw)
IS_ERR(), IS_ERR_OR_NULL(), IS_ERR_VALUE() and WARN*() already contain
unlikely() optimization internally. Thus, there is no point in calling
these functions and defines under likely()/unlikely().
This check is based on the coccinelle rule developed by Enrico Weigelt
https://lore.kernel.org/lkml/1559767582-11081-1-git-send-email-info@metux.net/
Signed-off-by: Denis Efremov <efremov@linux.com>
Cc: Joe Perches <joe@perches.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Whitcroft <apw@canonical.com>
---
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 93a7edfe0f05..56969ce06df4 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6480,6 +6480,12 @@ sub process {
"Using $1 should generally have parentheses around the comparison\n" . $herecurr);
}
+# nested likely/unlikely calls
+ if ($line =~ /\b(?:(?:un)?likely)\s*\(\s*!?\s*(IS_ERR(?:_OR_NULL|_VALUE)?|WARN)/) {
+ WARN("LIKELY_MISUSE",
+ "nested (un)?likely() calls, $1 already uses unlikely() internally\n" . $herecurr);
+ }
+
# whine mightly about in_atomic
if ($line =~ /\bin_atomic\s*\(/) {
if ($realfile =~ m@^drivers/@) {
--
2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Denis Efremov <efremov@linux.com>
To: linux-kernel@vger.kernel.org
Cc: "Denis Efremov" <efremov@linux.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Anton Altaparmakov" <anton@tuxera.com>,
"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Boris Pismenny" <borisp@mellanox.com>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
"David S. Miller" <davem@davemloft.net>,
"Dennis Dalessandro" <dennis.dalessandro@intel.com>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Inaky Perez-Gonzalez" <inaky.perez-gonzalez@intel.com>,
"Juergen Gross" <jgross@suse.com>,
"Leon Romanovsky" <leon@kernel.org>,
"Mike Marciniszyn" <mike.marciniszyn@intel.com>,
"Pali Rohár" <pali.rohar@gmail.com>,
"Rob Clark" <robdclark@gmail.com>,
"Saeed Mahameed" <saeedm@mellanox.com>,
"Sean Paul" <sean@poorly.run>,
linux-arm-msm@vger.kernel.org, linux-fsdevel@vger.kern
Subject: [PATCH v3 01/11] checkpatch: check for nested (un)?likely() calls
Date: Thu, 29 Aug 2019 19:50:15 +0300 [thread overview]
Message-ID: <20190829165025.15750-1-efremov@linux.com> (raw)
IS_ERR(), IS_ERR_OR_NULL(), IS_ERR_VALUE() and WARN*() already contain
unlikely() optimization internally. Thus, there is no point in calling
these functions and defines under likely()/unlikely().
This check is based on the coccinelle rule developed by Enrico Weigelt
https://lore.kernel.org/lkml/1559767582-11081-1-git-send-email-info@metux.net/
Signed-off-by: Denis Efremov <efremov@linux.com>
Cc: Joe Perches <joe@perches.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Whitcroft <apw@canonical.com>
---
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 93a7edfe0f05..56969ce06df4 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6480,6 +6480,12 @@ sub process {
"Using $1 should generally have parentheses around the comparison\n" . $herecurr);
}
+# nested likely/unlikely calls
+ if ($line =~ /\b(?:(?:un)?likely)\s*\(\s*!?\s*(IS_ERR(?:_OR_NULL|_VALUE)?|WARN)/) {
+ WARN("LIKELY_MISUSE",
+ "nested (un)?likely() calls, $1 already uses unlikely() internally\n" . $herecurr);
+ }
+
# whine mightly about in_atomic
if ($line =~ /\bin_atomic\s*\(/) {
if ($realfile =~ m@^drivers/@) {
--
2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Denis Efremov <efremov@linux.com>
To: linux-kernel@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org,
"Leon Romanovsky" <leon@kernel.org>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
linux-rdma@vger.kernel.org,
"Inaky Perez-Gonzalez" <inaky.perez-gonzalez@intel.com>,
"Saeed Mahameed" <saeedm@mellanox.com>,
linux-input@vger.kernel.org, xen-devel@lists.xenproject.org,
"Boris Pismenny" <borisp@mellanox.com>,
linux-arm-msm@vger.kernel.org,
"Denis Efremov" <efremov@linux.com>,
linux-wimax@intel.com, "Joe Perches" <joe@perches.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Andy Whitcroft" <apw@canonical.com>,
"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Sean Paul" <sean@poorly.run>,
"Anton Altaparmakov" <anton@tuxera.com>,
"Juergen Gross" <jgross@suse.com>,
"Mike Marciniszyn" <mike.marciniszyn@intel.com>,
linux-ntfs-dev@lists.sourceforge.net, netdev@vger.kernel.org,
"Dennis Dalessandro" <dennis.dalessandro@intel.com>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
linux-xfs@vger.kernel.org, "Rob Clark" <robdclark@gmail.com>,
"Pali Rohár" <pali.rohar@gmail.com>,
linux-fsdevel@vger.kernel.org,
"Andrew Morton" <akpm@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>
Subject: [Xen-devel] [PATCH v3 01/11] checkpatch: check for nested (un)?likely() calls
Date: Thu, 29 Aug 2019 19:50:15 +0300 [thread overview]
Message-ID: <20190829165025.15750-1-efremov@linux.com> (raw)
IS_ERR(), IS_ERR_OR_NULL(), IS_ERR_VALUE() and WARN*() already contain
unlikely() optimization internally. Thus, there is no point in calling
these functions and defines under likely()/unlikely().
This check is based on the coccinelle rule developed by Enrico Weigelt
https://lore.kernel.org/lkml/1559767582-11081-1-git-send-email-info@metux.net/
Signed-off-by: Denis Efremov <efremov@linux.com>
Cc: Joe Perches <joe@perches.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Whitcroft <apw@canonical.com>
---
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 93a7edfe0f05..56969ce06df4 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6480,6 +6480,12 @@ sub process {
"Using $1 should generally have parentheses around the comparison\n" . $herecurr);
}
+# nested likely/unlikely calls
+ if ($line =~ /\b(?:(?:un)?likely)\s*\(\s*!?\s*(IS_ERR(?:_OR_NULL|_VALUE)?|WARN)/) {
+ WARN("LIKELY_MISUSE",
+ "nested (un)?likely() calls, $1 already uses unlikely() internally\n" . $herecurr);
+ }
+
# whine mightly about in_atomic
if ($line =~ /\bin_atomic\s*\(/) {
if ($realfile =~ m@^drivers/@) {
--
2.21.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next reply other threads:[~2019-08-29 16:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-29 16:50 Denis Efremov [this message]
2019-08-29 16:50 ` [Xen-devel] [PATCH v3 01/11] checkpatch: check for nested (un)?likely() calls Denis Efremov
2019-08-29 16:50 ` Denis Efremov
2019-08-29 16:50 ` [PATCH v3 02/11] drm/msm: remove unlikely() from WARN_ON() conditions Denis Efremov
2019-09-04 4:13 ` Bjorn Andersson
2019-08-29 16:50 ` [PATCH v3 03/11] net/mlx5e: Remove unlikely() from WARN*() condition Denis Efremov
2019-08-29 21:23 ` Saeed Mahameed
2019-08-31 2:50 ` David Miller
2019-08-29 16:50 ` [Xen-devel] [PATCH v3 04/11] xen/events: Remove unlikely() from WARN() condition Denis Efremov
2019-08-29 16:50 ` Denis Efremov
2019-08-29 16:50 ` [PATCH v3 05/11] fs: remove unlikely() from WARN_ON() condition Denis Efremov
2019-08-29 16:50 ` [PATCH v3 06/11] wimax/i2400m: remove unlikely() from WARN*() condition Denis Efremov
2019-08-31 11:25 ` Markus Elfring
2019-08-31 15:59 ` Denis Efremov
2019-08-29 16:50 ` [PATCH v3 07/11] xfs: remove unlikely() from WARN_ON() condition Denis Efremov
2019-08-29 21:22 ` Darrick J. Wong
2019-08-30 5:37 ` Christoph Hellwig
2019-08-29 16:50 ` [PATCH v3 08/11] IB/hfi1: Remove unlikely() from IS_ERR*() condition Denis Efremov
2019-08-29 16:50 ` [PATCH v3 09/11] Input: alps - remove " Denis Efremov
2019-08-29 17:50 ` Dmitry Torokhov
2019-08-31 15:25 ` Pali Rohár
2019-08-31 15:50 ` Denis Efremov
2019-08-31 20:32 ` Joe Perches
2019-08-31 21:03 ` Dmitry Torokhov
2019-08-29 16:50 ` [PATCH v3 10/11] udp: Remove " Denis Efremov
2019-08-29 16:50 ` [PATCH v3 11/11] ntfs: remove (un)?likely() from IS_ERR() conditions Denis Efremov
2019-08-31 9:15 ` [PATCH v3 01/11] checkpatch: check for nested (un)?likely() calls Markus Elfring
2019-08-31 9:15 ` [Xen-devel] " Markus Elfring
2019-08-31 9:15 ` Markus Elfring
2019-08-31 15:54 ` Denis Efremov
2019-08-31 15:54 ` [Xen-devel] " Denis Efremov
2019-08-31 15:54 ` Denis Efremov
2019-08-31 16:45 ` Markus Elfring
2019-08-31 16:45 ` [Xen-devel] " Markus Elfring
2019-08-31 16:45 ` Markus Elfring
2019-08-31 17:07 ` Denis Efremov
2019-08-31 17:07 ` [Xen-devel] " Denis Efremov
2019-08-31 17:07 ` Denis Efremov
2019-08-31 17:26 ` Markus Elfring
2019-08-31 17:26 ` [Xen-devel] " Markus Elfring
2019-08-31 17:26 ` Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190829165025.15750-1-efremov@linux.com \
--to=efremov@linux.com \
--cc=akpm@linux-foundation.org \
--cc=anton@tuxera.com \
--cc=apw@canonical.com \
--cc=boris.ostrovsky@oracle.com \
--cc=borisp@mellanox.com \
--cc=darrick.wong@oracle.com \
--cc=davem@davemloft.net \
--cc=dennis.dalessandro@intel.com \
--cc=dmitry.torokhov@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=inaky.perez-gonzalez@intel.com \
--cc=jgross@suse.com \
--cc=joe@perches.com \
--cc=leon@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-ntfs-dev@lists.sourceforge.net \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-wimax@intel.com \
--cc=linux-xfs@vger.kernel.org \
--cc=mike.marciniszyn@intel.com \
--cc=netdev@vger.kernel.org \
--cc=pali.rohar@gmail.com \
--cc=robdclark@gmail.com \
--cc=saeedm@mellanox.com \
--cc=sean@poorly.run \
--cc=viro@zeniv.linux.org.uk \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.