* [PATCH bpf-next v3] selftests/bpf: replace fall through comment by fallthrough pseudo-keyword
@ 2023-08-01 9:48 Ruan Jinjie
2023-08-01 15:40 ` Yonghong Song
0 siblings, 1 reply; 3+ messages in thread
From: Ruan Jinjie @ 2023-08-01 9:48 UTC (permalink / raw)
To: Ast, Daniel, Andrii, Martin.lau, Song, Yonghong.song,
John.fastabend, Kpsingh, Sdf, Haoluo, Jolsa, Mykolal, Shuah,
Benjamin.tissoires, Asavkov, Memxor, Iii, Colin.i.king, Awkrail01,
Rdunlap, Joannelkoong, bpf, linux-kselftest
Cc: ruanjinjie
Replace the existing /* fall through */ comments with the
new pseudo-keyword macro fallthrough[1].
[1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
---
v3:
- Update the subject prefix and fix the 'fallthrough' undeclared build error.
---
v2:
- Update the subject and commit message.
---
tools/testing/selftests/bpf/prog_tests/kfunc_call.c | 4 ++--
tools/testing/selftests/bpf/progs/test_cls_redirect.c | 2 +-
tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c | 2 +-
tools/testing/selftests/bpf/test_verifier.c | 3 ++-
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
index a543742cd7bd..0fd08172965a 100644
--- a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
+++ b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
@@ -101,7 +101,7 @@ static void verify_success(struct kfunc_test_params *param)
case syscall_test:
topts.ctx_in = &args;
topts.ctx_size_in = sizeof(args);
- /* fallthrough */
+ fallthrough;
case syscall_null_ctx_test:
break;
case tc_test:
@@ -167,7 +167,7 @@ static void verify_fail(struct kfunc_test_params *param)
case syscall_test:
topts.ctx_in = &args;
topts.ctx_size_in = sizeof(args);
- /* fallthrough */
+ fallthrough;
case syscall_null_ctx_test:
break;
case tc_test:
diff --git a/tools/testing/selftests/bpf/progs/test_cls_redirect.c b/tools/testing/selftests/bpf/progs/test_cls_redirect.c
index 66b304982245..f97960759558 100644
--- a/tools/testing/selftests/bpf/progs/test_cls_redirect.c
+++ b/tools/testing/selftests/bpf/progs/test_cls_redirect.c
@@ -300,7 +300,7 @@ bool pkt_skip_ipv6_extension_headers(buf_t *pkt,
case IPPROTO_FRAGMENT:
*is_fragment = true;
/* NB: We don't check that hdrlen == 0 as per spec. */
- /* fallthrough; */
+ fallthrough;
case IPPROTO_HOPOPTS:
case IPPROTO_ROUTING:
diff --git a/tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c b/tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c
index f41c81212ee9..54dbf307c692 100644
--- a/tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c
+++ b/tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c
@@ -204,7 +204,7 @@ static bool pkt_skip_ipv6_extension_headers(struct bpf_dynptr *dynptr, __u64 *of
case IPPROTO_FRAGMENT:
*is_fragment = true;
/* NB: We don't check that hdrlen == 0 as per spec. */
- /* fallthrough; */
+ fallthrough;
case IPPROTO_HOPOPTS:
case IPPROTO_ROUTING:
diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c
index 31f1c935cd07..8f2e3852c207 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -28,6 +28,7 @@
#include <linux/bpf.h>
#include <linux/if_ether.h>
#include <linux/btf.h>
+#include <linux/compiler.h>
#include <bpf/btf.h>
#include <bpf/bpf.h>
@@ -1289,7 +1290,7 @@ static int do_prog_test_run(int fd_prog, bool unpriv, uint32_t expected_val,
printf("Did not run the program (no permission) ");
return 0;
}
- /* fallthrough; */
+ fallthrough;
default:
printf("FAIL: Unexpected bpf_prog_test_run error (%s) ",
strerror(saved_errno));
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH bpf-next v3] selftests/bpf: replace fall through comment by fallthrough pseudo-keyword
2023-08-01 9:48 [PATCH bpf-next v3] selftests/bpf: replace fall through comment by fallthrough pseudo-keyword Ruan Jinjie
@ 2023-08-01 15:40 ` Yonghong Song
2023-08-02 1:30 ` Ruan Jinjie
0 siblings, 1 reply; 3+ messages in thread
From: Yonghong Song @ 2023-08-01 15:40 UTC (permalink / raw)
To: Ruan Jinjie, Ast, Daniel, Andrii, Martin.lau, Song,
John.fastabend, Kpsingh, Sdf, Haoluo, Jolsa, Mykolal, Shuah,
Benjamin.tissoires, Asavkov, Memxor, Iii, Colin.i.king, Awkrail01,
Rdunlap, Joannelkoong, bpf, linux-kselftest
On 8/1/23 2:48 AM, Ruan Jinjie wrote:
> Replace the existing /* fall through */ comments with the
> new pseudo-keyword macro fallthrough[1].
>
> [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
>
> Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
> ---
> v3:
> - Update the subject prefix and fix the 'fallthrough' undeclared build error.
> ---
> v2:
> - Update the subject and commit message.
> ---
> tools/testing/selftests/bpf/prog_tests/kfunc_call.c | 4 ++--
> tools/testing/selftests/bpf/progs/test_cls_redirect.c | 2 +-
> tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c | 2 +-
> tools/testing/selftests/bpf/test_verifier.c | 3 ++-
> 4 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
> index a543742cd7bd..0fd08172965a 100644
> --- a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
> +++ b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
> @@ -101,7 +101,7 @@ static void verify_success(struct kfunc_test_params *param)
> case syscall_test:
> topts.ctx_in = &args;
> topts.ctx_size_in = sizeof(args);
> - /* fallthrough */
> + fallthrough;
This won't work for clang built kernel/selftests:
In file included from progs/test_cls_redirect_subprogs.c:2:
progs/test_cls_redirect.c:303:4: error: use of undeclared identifier
'fallthrough'
303 | fallthrough;
| ^
CLNG-BPF [test_maps] netns_cookie_prog.bpf.o
CLNG-BPF [test_maps] test_skmsg_load_helpers.bpf.o
CLNG-BPF [test_maps] bpf_iter_setsockopt.bpf.o
CLNG-BPF [test_maps] timer.bpf.o
progs/test_cls_redirect.c:303:4: error: use of undeclared identifier
'fallthrough'
303 | fallthrough;
| ^
Try to build the kernel with:
make -j LLVM=1
make headers_install
and then build the selftests with
make -C tools/testing/selftests/bpf -j LLVM=1
[~/work/bpf-next/tools/include (master)]$ egrep -r fallthrough
egrep: warning: egrep is obsolescent; using grep -E
linux/compiler-gcc.h:#if __has_attribute(__fallthrough__)
linux/compiler-gcc.h:# define fallthrough
__attribute__((__fallthrough__))
linux/compiler-gcc.h:# define fallthrough do {} while
(0) /* fallthrough */
[~/work/bpf-next/tools/include (master)]$
Looks like 'fallthrough' is not defined for clang build tools/selftests.
> case syscall_null_ctx_test:
> break;
> case tc_test:
> @@ -167,7 +167,7 @@ static void verify_fail(struct kfunc_test_params *param)
> case syscall_test:
> topts.ctx_in = &args;
> topts.ctx_size_in = sizeof(args);
> - /* fallthrough */
> + fallthrough;
> case syscall_null_ctx_test:
> break;
> case tc_test:
[...]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH bpf-next v3] selftests/bpf: replace fall through comment by fallthrough pseudo-keyword
2023-08-01 15:40 ` Yonghong Song
@ 2023-08-02 1:30 ` Ruan Jinjie
0 siblings, 0 replies; 3+ messages in thread
From: Ruan Jinjie @ 2023-08-02 1:30 UTC (permalink / raw)
To: yonghong.song, Ast, Daniel, Andrii, Martin.lau, Song,
John.fastabend, Kpsingh, Sdf, Haoluo, Jolsa, Mykolal, Shuah,
Benjamin.tissoires, Asavkov, Memxor, Iii, Colin.i.king, Awkrail01,
Rdunlap, Joannelkoong, bpf, linux-kselftest
On 2023/8/1 23:40, Yonghong Song wrote:
>
>
> On 8/1/23 2:48 AM, Ruan Jinjie wrote:
>> Replace the existing /* fall through */ comments with the
>> new pseudo-keyword macro fallthrough[1].
>>
>> [1]
>> https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
>>
>> Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
>> ---
>> v3:
>> - Update the subject prefix and fix the 'fallthrough' undeclared build
>> error.
>> ---
>> v2:
>> - Update the subject and commit message.
>> ---
>> tools/testing/selftests/bpf/prog_tests/kfunc_call.c | 4 ++--
>> tools/testing/selftests/bpf/progs/test_cls_redirect.c | 2 +-
>> tools/testing/selftests/bpf/progs/test_cls_redirect_dynptr.c | 2 +-
>> tools/testing/selftests/bpf/test_verifier.c | 3 ++-
>> 4 files changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
>> b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
>> index a543742cd7bd..0fd08172965a 100644
>> --- a/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
>> +++ b/tools/testing/selftests/bpf/prog_tests/kfunc_call.c
>> @@ -101,7 +101,7 @@ static void verify_success(struct
>> kfunc_test_params *param)
>> case syscall_test:
>> topts.ctx_in = &args;
>> topts.ctx_size_in = sizeof(args);
>> - /* fallthrough */
>> + fallthrough;
>
> This won't work for clang built kernel/selftests:
>
> In file included from progs/test_cls_redirect_subprogs.c:2:
> progs/test_cls_redirect.c:303:4: error: use of undeclared identifier
> 'fallthrough'
> 303 | fallthrough;
> | ^
> CLNG-BPF [test_maps] netns_cookie_prog.bpf.o
> CLNG-BPF [test_maps] test_skmsg_load_helpers.bpf.o
> CLNG-BPF [test_maps] bpf_iter_setsockopt.bpf.o
> CLNG-BPF [test_maps] timer.bpf.o
> progs/test_cls_redirect.c:303:4: error: use of undeclared identifier
> 'fallthrough'
> 303 | fallthrough;
Thank you very much! I'll fix it in v4.
> | ^
>
> Try to build the kernel with:
> make -j LLVM=1
> make headers_install
>
> and then build the selftests with
> make -C tools/testing/selftests/bpf -j LLVM=1
>
> [~/work/bpf-next/tools/include (master)]$ egrep -r fallthrough
> egrep: warning: egrep is obsolescent; using grep -E
> linux/compiler-gcc.h:#if __has_attribute(__fallthrough__)
> linux/compiler-gcc.h:# define fallthrough __attribute__((__fallthrough__))
> linux/compiler-gcc.h:# define fallthrough do {} while
> (0) /* fallthrough */
> [~/work/bpf-next/tools/include (master)]$
>
> Looks like 'fallthrough' is not defined for clang build tools/selftests.
>
>> case syscall_null_ctx_test:
>> break;
>> case tc_test:
>> @@ -167,7 +167,7 @@ static void verify_fail(struct kfunc_test_params
>> *param)
>> case syscall_test:
>> topts.ctx_in = &args;
>> topts.ctx_size_in = sizeof(args);
>> - /* fallthrough */
>> + fallthrough;
>> case syscall_null_ctx_test:
>> break;
>> case tc_test:
> [...]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-02 1:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-01 9:48 [PATCH bpf-next v3] selftests/bpf: replace fall through comment by fallthrough pseudo-keyword Ruan Jinjie
2023-08-01 15:40 ` Yonghong Song
2023-08-02 1:30 ` Ruan Jinjie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox