Commit 5b8f82e1 authored by Song Liu's avatar Song Liu Committed by Linus Torvalds

checkpatch: do not apply "initialise globals to 0" check to BPF progs

BPF programs explicitly initialise global variables to 0 to make sure
clang (v10 or older) do not put the variables in the common section.  Skip
"initialise globals to 0" check for BPF programs to elimiate error
messages like:

    ERROR: do not initialise globals to 0
    #19: FILE: samples/bpf/tracex1_kern.c:21:

Link: https://lkml.kernel.org/r/20210209211954.490077-1-songliubraving@fb.comSigned-off-by: default avatarSong Liu <songliubraving@fb.com>
Acked-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 263afd39
......@@ -2453,6 +2453,15 @@ sub get_raw_comment {
return $comment;
}
sub exclude_global_initialisers {
my ($realfile) = @_;
# Do not check for BPF programs (tools/testing/selftests/bpf/progs/*.c, samples/bpf/*_kern.c, *.bpf.c).
return $realfile =~ m@^tools/testing/selftests/bpf/progs/.*\.c$@ ||
$realfile =~ m@^samples/bpf/.*_kern\.c$@ ||
$realfile =~ m@/bpf/.*\.bpf\.c$@;
}
sub process {
my $filename = shift;
......@@ -4358,7 +4367,8 @@ sub process {
}
# check for global initialisers.
if ($line =~ /^\+$Type\s*$Ident(?:\s+$Modifier)*\s*=\s*($zero_initializer)\s*;/) {
if ($line =~ /^\+$Type\s*$Ident(?:\s+$Modifier)*\s*=\s*($zero_initializer)\s*;/ &&
!exclude_global_initialisers($realfile)) {
if (ERROR("GLOBAL_INITIALISERS",
"do not initialise globals to $1\n" . $herecurr) &&
$fix) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment