|
@@ -5850,6 +5850,28 @@ sub process {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+# whine about ACCESS_ONCE
|
|
|
+ if ($^V && $^V ge 5.10.0 &&
|
|
|
+ $line =~ /\bACCESS_ONCE\s*$balanced_parens\s*(=(?!=))?\s*($FuncArg)?/) {
|
|
|
+ my $par = $1;
|
|
|
+ my $eq = $2;
|
|
|
+ my $fun = $3;
|
|
|
+ $par =~ s/^\(\s*(.*)\s*\)$/$1/;
|
|
|
+ if (defined($eq)) {
|
|
|
+ if (WARN("PREFER_WRITE_ONCE",
|
|
|
+ "Prefer WRITE_ONCE(<FOO>, <BAR>) over ACCESS_ONCE(<FOO>) = <BAR>\n" . $herecurr) &&
|
|
|
+ $fix) {
|
|
|
+ $fixed[$fixlinenr] =~ s/\bACCESS_ONCE\s*\(\s*\Q$par\E\s*\)\s*$eq\s*\Q$fun\E/WRITE_ONCE($par, $fun)/;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (WARN("PREFER_READ_ONCE",
|
|
|
+ "Prefer READ_ONCE(<FOO>) over ACCESS_ONCE(<FOO>)\n" . $herecurr) &&
|
|
|
+ $fix) {
|
|
|
+ $fixed[$fixlinenr] =~ s/\bACCESS_ONCE\s*\(\s*\Q$par\E\s*\)/READ_ONCE($par)/;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
# check for lockdep_set_novalidate_class
|
|
|
if ($line =~ /^.\s*lockdep_set_novalidate_class\s*\(/ ||
|
|
|
$line =~ /__lockdep_no_validate__\s*\)/ ) {
|