Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1305546 > unrolled thread
| Started by | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| First post | 2016-01-10 13:00 +0100 |
| Last post | 2016-01-10 13:00 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v2 0/3] checkpatch: handling of memory barriers "Michael S. Tsirkin" <mst@redhat.com> - 2016-01-10 13:00 +0100
[PATCH v2 2/3] checkpatch: check for __smp outside barrier.h "Michael S. Tsirkin" <mst@redhat.com> - 2016-01-10 13:00 +0100
Re: [PATCH v2 2/3] checkpatch: check for __smp outside barrier.h Joe Perches <joe@perches.com> - 2016-01-10 16:10 +0100
[PATCH v2 3/3] checkpatch: add virt barriers "Michael S. Tsirkin" <mst@redhat.com> - 2016-01-10 13:00 +0100
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-01-10 13:00 +0100 |
| Subject | [PATCH v2 0/3] checkpatch: handling of memory barriers |
| Message-ID | <qPmP8-3H8-7@gated-at.bofh.it> |
As part of memory barrier cleanup, this patchset
extends checkpatch to make it easier to stop
incorrect memory barrier usage.
This applies on top of my series
arch: barrier cleanup + barriers for virt
and will be included in the next version of the series.
Changes from v2:
catch optional\s* before () in barriers
rewrite using qr{} instead of map
Michael S. Tsirkin (3):
checkpatch.pl: add missing memory barriers
checkpatch: check for __smp outside barrier.h
checkpatch: add virt barriers
scripts/checkpatch.pl | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
--
MST
[toc] | [next] | [standalone]
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-01-10 13:00 +0100 |
| Subject | [PATCH v2 2/3] checkpatch: check for __smp outside barrier.h |
| Message-ID | <qPmP8-3H8-11@gated-at.bofh.it> |
| In reply to | #1305546 |
Introduction of __smp barriers cleans up a bunch of duplicate code, but
it gives people an additional handle onto a "new" set of barriers - just
because they're prefixed with __* unfortunately doesn't stop anyone from
using it (as happened with other arch stuff before.)
Add a checkpatch test so it will trigger a warning.
Reported-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
scripts/checkpatch.pl | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 97b8b62..a96adcb 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -5141,6 +5141,16 @@ sub process {
}
}
+ my $underscore_smp_barriers = qr{__smp_($smp_barriers)}x;
+
+ if ($realfile !~ m@^include/asm-generic/@ &&
+ $realfile !~ m@/barrier\.h$@ &&
+ $line =~ m/\b($underscore_smp_barriers)\s*\(/ &&
+ $line !~ m/^.\s*\#\s*define\s+($underscore_smp_barriers)\s*\(/) {
+ WARN("MEMORY_BARRIER",
+ "__smp memory barriers shouldn't be used outside barrier.h and asm-generic\n" . $herecurr);
+ }
+
# check for waitqueue_active without a comment.
if ($line =~ /\bwaitqueue_active\s*\(/) {
if (!ctx_has_comment($first_line, $linenr)) {
--
MST
[toc] | [prev] | [next] | [standalone]
| From | Joe Perches <joe@perches.com> |
|---|---|
| Date | 2016-01-10 16:10 +0100 |
| Subject | Re: [PATCH v2 2/3] checkpatch: check for __smp outside barrier.h |
| Message-ID | <qPpN0-5Qp-1@gated-at.bofh.it> |
| In reply to | #1305547 |
On Sun, 2016-01-10 at 13:57 +0200, Michael S. Tsirkin wrote:
> Introduction of __smp barriers cleans up a bunch of duplicate code, but
> it gives people an additional handle onto a "new" set of barriers - just
> because they're prefixed with __* unfortunately doesn't stop anyone from
> using it (as happened with other arch stuff before.)
>
> Add a checkpatch test so it will trigger a warning.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -5141,6 +5141,16 @@ sub process {
> }
> }
>
> + my $underscore_smp_barriers = qr{__smp_($smp_barriers)}x;
another unnecessary capture group
> +
> + if ($realfile !~ m@^include/asm-generic/@ &&
> + $realfile !~ m@/barrier\.h$@ &&
> + $line =~ m/\b($underscore_smp_barriers)\s*\(/ &&
> + $line !~ m/^.\s*\#\s*define\s+($underscore_smp_barriers)\s*\(/) {
> + WARN("MEMORY_BARRIER",
> + "__smp memory barriers shouldn't be used outside barrier.h and asm-generic\n" . $herecurr);
> + }
> +
> # check for waitqueue_active without a comment.
> if ($line =~ /\bwaitqueue_active\s*\(/) {
> if (!ctx_has_comment($first_line, $linenr)) {
[toc] | [prev] | [next] | [standalone]
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-01-10 13:00 +0100 |
| Subject | [PATCH v2 3/3] checkpatch: add virt barriers |
| Message-ID | <qPmP8-3H8-13@gated-at.bofh.it> |
| In reply to | #1305546 |
Add virt_ barriers to list of barriers to check for
presence of a comment.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
scripts/checkpatch.pl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index a96adcb..5ca272b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -5131,7 +5131,8 @@ sub process {
}x;
my $all_barriers = qr{
$barriers|
- smp_($smp_barriers)
+ smp_($smp_barriers)|
+ virt_($smp_barriers)
}x;
if ($line =~ /\b($all_barriers)\s*\(/) {
--
MST
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web