module_param and create_proc uses with a permissions use of a single 0
are "special" and should not emit any warning.

module_param uses with permission 0 is not visible in sysfs
create_proc uses with permission 0 uses a default permission

Signed-off-by: Bartosz Golaszewski <b...@bgdev.pl>
Signed-off-by: Joe Perches <j...@perches.com>
---
 scripts/checkpatch.pl | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 6b130a4116fa..2db1d0363ce2 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -6298,6 +6298,10 @@ sub process {
 
 # Mode permission misuses where it seems decimal should be octal
 # This uses a shortcut match to avoid unnecessary uses of a slow foreach loop
+# o Ignore module_param*(...) uses with a decimal 0 permission as that has a
+#   specific definition of not visible in sysfs.
+# o Ignore proc_create*(...) uses with a decimal 0 permission as that means
+#   use the default permissions
                if ($^V && $^V ge 5.10.0 &&
                    defined $stat &&
                    $line =~ /$mode_perms_search/) {
@@ -6321,8 +6325,9 @@ sub process {
                                if ($stat =~ /$test/) {
                                        my $val = $1;
                                        $val = $6 if ($skip_args ne "");
-                                       if (($val =~ /^$Int$/ && $val !~ 
/^$Octal$/) ||
-                                           ($val =~ /^$Octal$/ && length($val) 
ne 4)) {
+                                       if (!($func =~ 
/^(?:module_param|proc_create)/ && $val eq "0") &&
+                                           (($val =~ /^$Int$/ && $val !~ 
/^$Octal$/) ||
+                                            ($val =~ /^$Octal$/ && 
length($val) ne 4))) {
                                                ERROR("NON_OCTAL_PERMISSIONS",
                                                      "Use 4 digit octal (0777) 
not decimal permissions\n" . "$here\n" . $stat_real);
                                        }
-- 
2.15.0

Reply via email to