Thread (9 messages) flat view 9 messages, 2 authors, 2016-01-10

Re: [PATCH v2 1/3] checkpatch.pl: add missing memory barriers

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2016-01-10 19:13:54
Also in: linux-arch, linux-arm-kernel, linux-mips, linux-s390, linux-sh, linux-um, lkml, sparclinux

On Sun, Jan 10, 2016 at 07:07:05AM -0800, Joe Perches wrote:
On Sun, 2016-01-10 at 13:56 +0200, Michael S. Tsirkin wrote:
quoted
SMP-only barriers were missing in checkpatch.pl

Refactor code slightly to make adding more variants easier.
[]
quoted
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
quoted
@@ -5116,7 +5116,25 @@ sub process {
 			}
 		}
 # check for memory barriers without a comment.
-		if ($line =~ /\b(mb|rmb|wmb|read_barrier_depends|smp_mb|smp_rmb|smp_wmb|smp_read_barrier_depends)\(/) {
+
+		my $barriers = qr{
+			mb|
+			rmb|
+			wmb|
+			read_barrier_depends
+		}x;
+		my $smp_barriers = qr{
+			store_release|
+			load_acquire|
+			store_mb|
+			($barriers)
+		}x;
If I use a variable called $smp_barriers, I'd expect
it to actually be the smp_barriers, not to have to
prefix it with smp_ before using it.

		my $smp_barriers = qr{
			smp_store_release|
			smp_load_acquire|
			smp_store_mb|
			smp_read_barrier_depends
		}x;

or

		my $smp_barriers = qr{
			smp_(?:store_release|load_acquire|store_mb|read_barrier_depends)
		}x;
Yes but virt barriers (added in patch 3) are same things but prefixed
with virt_.  So we need the stems without smp_ prefix. If smp_barriers is
too confusing we'll just need to give them some other name.
How about:
my $smp_barrier_stems

?
quoted
+		my $all_barriers = qr{
+			$barriers|
+			smp_($smp_barriers)
+		}x;
And this shouldn't have a capture group.

		my $all_barriers = qr{
			$barriers|
			$smp_barriers
		}x;		
quoted
+
+		if ($line =~ /\b($all_barriers)\s*\(/) {
This doesn't need the capture group either (?:all_barriers)
quoted
 			if (!ctx_has_comment($first_line, $linenr))
{
 				WARN("MEMORY_BARRIER",
 				     "memory barrier without
comment\n" . $herecurr);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help