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

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

From: Joe Perches <joe@perches.com>
Date: 2016-01-10 15:07:14
Also in: linux-arch, linux-arm-kernel, linux-mips, linux-s390, linux-sh, linux-um, lkml, sparclinux

On Sun, 2016-01-10 at 13:56 +0200, Michael S. Tsirkin wrote:
SMP-only barriers were missing in checkpatch.pl

Refactor code slightly to make adding more variants easier.
[]
quoted hunk ↗ jump to hunk
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
quoted hunk ↗ jump to hunk
@@ -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;

 
+		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;		
+
+		if ($line =~ /\b($all_barriers)\s*\(/) {
This doesn't need the capture group either (?:all_barriers)
 			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