bpf: Add missing annotations for __bpf_prog_enter() and __bpf_prog_exit()
authorJules Irenge <jbi.octave@gmail.com>
Wed, 11 Mar 2020 01:09:01 +0000 (01:09 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 13 Mar 2020 19:55:07 +0000 (20:55 +0100)
Sparse reports a warning at __bpf_prog_enter() and __bpf_prog_exit()

warning: context imbalance in __bpf_prog_enter() - wrong count at exit
warning: context imbalance in __bpf_prog_exit() - unexpected unlock

The root cause is the missing annotation at __bpf_prog_enter()
and __bpf_prog_exit()

Add the missing __acquires(RCU) annotation
Add the missing __releases(RCU) annotation

Signed-off-by: Jules Irenge <jbi.octave@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200311010908.42366-2-jbi.octave@gmail.com
kernel/bpf/trampoline.c

index f42f700..f30bca2 100644 (file)
@@ -352,6 +352,7 @@ out:
  * call __bpf_prog_exit
  */
 u64 notrace __bpf_prog_enter(void)
+       __acquires(RCU)
 {
        u64 start = 0;
 
@@ -363,6 +364,7 @@ u64 notrace __bpf_prog_enter(void)
 }
 
 void notrace __bpf_prog_exit(struct bpf_prog *prog, u64 start)
+       __releases(RCU)
 {
        struct bpf_prog_stats *stats;