mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
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.com Signed-off-by: Song Liu <songliubraving@fb.com> Acked-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
263afd39c0
commit
5b8f82e1a1
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user