Re: [PATCH] bpf: verifier: avoid fall-through warnings
From: Gustavo A. R. Silva <hidden>
Date: 2019-06-11 17:41:40
Also in:
bpf, lkml
On 6/11/19 12:27 PM, Gustavo A. R. Silva wrote:
On 6/11/19 12:22 PM, Andrii Nakryiko wrote:quoted
On Tue, Jun 11, 2019 at 7:05 AM Gustavo A. R. Silva [off-list ref] wrote:quoted
In preparation to enabling -Wimplicit-fallthrough, this patch silences the following warning:Your patch doesn't apply cleanly to neither bpf nor bpf-next tree. Could you please rebase and re-submit? Please also include which tree (probably bpf-next) you are designating this patch to in subject prefix.This patch applies cleanly to linux-next (tag next-20190611).
It seems that this commit hasn't been merged into bpf/bpf-next yet: 983695fa676568fc0fe5ddd995c7267aabc24632 -- Gustavo
quoted
quoted
kernel/bpf/verifier.c: In function ‘check_return_code’: kernel/bpf/verifier.c:5509:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (env->prog->expected_attach_type == BPF_CGROUP_UDP4_RECVMSG || ^ kernel/bpf/verifier.c:5512:2: note: here case BPF_PROG_TYPE_CGROUP_SKB: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that it's much clearer to explicitly add breaks in each case (that actually contains some code), rather than letting the code to fall through. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva <redacted> --- kernel/bpf/verifier.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 1e9d10b32984..e9fc28991548 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c@@ -5509,11 +5509,13 @@ static int check_return_code(struct bpf_verifier_env *env) if (env->prog->expected_attach_type == BPF_CGROUP_UDP4_RECVMSG || env->prog->expected_attach_type == BPF_CGROUP_UDP6_RECVMSG) range = tnum_range(1, 1); + break; case BPF_PROG_TYPE_CGROUP_SKB: if (env->prog->expected_attach_type == BPF_CGROUP_INET_EGRESS) { range = tnum_range(0, 3); enforce_attach_type_range = tnum_range(2, 3); } + break; case BPF_PROG_TYPE_CGROUP_SOCK: case BPF_PROG_TYPE_SOCK_OPS: case BPF_PROG_TYPE_CGROUP_DEVICE: --2.21.0