All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] bpf: verifier: avoid fall-through warnings
@ 2019-06-11 13:28 Gustavo A. R. Silva
  2019-06-11 17:22 ` Andrii Nakryiko
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo A. R. Silva @ 2019-06-11 13:28 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, Lawrence Brakmo
  Cc: netdev, bpf, linux-kernel, Gustavo A. R. Silva, Kees Cook

In preparation to enabling -Wimplicit-fallthrough, this patch silences
the following warning:

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 <gustavo@embeddedor.com>
---
 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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] bpf: verifier: avoid fall-through warnings
  2019-06-11 13:28 [PATCH] bpf: verifier: avoid fall-through warnings Gustavo A. R. Silva
@ 2019-06-11 17:22 ` Andrii Nakryiko
  2019-06-11 17:27   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 5+ messages in thread
From: Andrii Nakryiko @ 2019-06-11 17:22 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, Lawrence Brakmo, Networking, bpf, open list,
	Kees Cook

On Tue, Jun 11, 2019 at 7:05 AM Gustavo A. R. Silva
<gustavo@embeddedor.com> wrote:
>
> 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.

>
> 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 <gustavo@embeddedor.com>
> ---
>  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
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] bpf: verifier: avoid fall-through warnings
  2019-06-11 17:22 ` Andrii Nakryiko
@ 2019-06-11 17:27   ` Gustavo A. R. Silva
  2019-06-11 17:41     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo A. R. Silva @ 2019-06-11 17:27 UTC (permalink / raw)
  To: Andrii Nakryiko
  Cc: Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, Lawrence Brakmo, Networking, bpf, open list,
	Kees Cook



On 6/11/19 12:22 PM, Andrii Nakryiko wrote:
> On Tue, Jun 11, 2019 at 7:05 AM Gustavo A. R. Silva
> <gustavo@embeddedor.com> wrote:
>>
>> 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).

--
Gustavo

>>
>> 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 <gustavo@embeddedor.com>
>> ---
>>  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
>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] bpf: verifier: avoid fall-through warnings
  2019-06-11 17:27   ` Gustavo A. R. Silva
@ 2019-06-11 17:41     ` Gustavo A. R. Silva
  2019-06-11 18:07       ` Andrii Nakryiko
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo A. R. Silva @ 2019-06-11 17:41 UTC (permalink / raw)
  To: Andrii Nakryiko
  Cc: Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, Lawrence Brakmo, Networking, bpf, open list,
	Kees Cook



On 6/11/19 12:27 PM, Gustavo A. R. Silva wrote:
> 
> 
> On 6/11/19 12:22 PM, Andrii Nakryiko wrote:
>> On Tue, Jun 11, 2019 at 7:05 AM Gustavo A. R. Silva
>> <gustavo@embeddedor.com> wrote:
>>>
>>> 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

>>>
>>> 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 <gustavo@embeddedor.com>
>>> ---
>>>  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
>>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] bpf: verifier: avoid fall-through warnings
  2019-06-11 17:41     ` Gustavo A. R. Silva
@ 2019-06-11 18:07       ` Andrii Nakryiko
  0 siblings, 0 replies; 5+ messages in thread
From: Andrii Nakryiko @ 2019-06-11 18:07 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, Lawrence Brakmo, Networking, bpf, open list,
	Kees Cook

On Tue, Jun 11, 2019 at 10:41 AM Gustavo A. R. Silva
<gustavo@embeddedor.com> wrote:
>
>
>
> On 6/11/19 12:27 PM, Gustavo A. R. Silva wrote:
> >
> >
> > On 6/11/19 12:22 PM, Andrii Nakryiko wrote:
> >> On Tue, Jun 11, 2019 at 7:05 AM Gustavo A. R. Silva
> >> <gustavo@embeddedor.com> wrote:
> >>>
> >>> 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
>
> >>>
> >>> 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 <gustavo@embeddedor.com>
> >>> ---
> >>>  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;

So this part is in bpf tree only...

> >>>         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;

... while this one is in bpf-next only.

Maybe just split this into two separate patches, one targeting bpf
tree and another for bpf-next tree? Unless you are willing to wait
till bpf is merged into bpf-next.

> >>>         case BPF_PROG_TYPE_CGROUP_SOCK:
> >>>         case BPF_PROG_TYPE_SOCK_OPS:
> >>>         case BPF_PROG_TYPE_CGROUP_DEVICE:
> >>> --
> >>> 2.21.0
> >>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-11 18:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-11 13:28 [PATCH] bpf: verifier: avoid fall-through warnings Gustavo A. R. Silva
2019-06-11 17:22 ` Andrii Nakryiko
2019-06-11 17:27   ` Gustavo A. R. Silva
2019-06-11 17:41     ` Gustavo A. R. Silva
2019-06-11 18:07       ` Andrii Nakryiko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.