[PATCH bpf-next] selftests/bpf: Fix return value checks in perf_event_stackmap.c

Yuntao Wang posted 1 patch 4 years, 1 month ago
There is a newer version of this series
tools/testing/selftests/bpf/progs/perf_event_stackmap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH bpf-next] selftests/bpf: Fix return value checks in perf_event_stackmap.c
Posted by Yuntao Wang 4 years, 1 month ago
The bpf_get_stackid() function may also return 0 on success.

Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
---
 tools/testing/selftests/bpf/progs/perf_event_stackmap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
index b3fcb5274ee0..f793280a3238 100644
--- a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
+++ b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
@@ -35,10 +35,10 @@ int oncpu(void *ctx)
 	long val;
 
 	val = bpf_get_stackid(ctx, &stackmap, 0);
-	if (val > 0)
+	if (val >= 0)
 		stackid_kernel = 2;
 	val = bpf_get_stackid(ctx, &stackmap, BPF_F_USER_STACK);
-	if (val > 0)
+	if (val >= 0)
 		stackid_user = 2;
 
 	trace = bpf_map_lookup_elem(&stackdata_map, &key);
-- 
2.35.1
Re: [PATCH bpf-next] selftests/bpf: Fix return value checks in perf_event_stackmap.c
Posted by Shuah Khan 4 years, 1 month ago
On 4/7/22 9:38 AM, Yuntao Wang wrote:
> The bpf_get_stackid() function may also return 0 on success.

Can you add couple of sentences to describe what this patch
does? bpf_get_stackid() may also return doesn't really say
anything about why this patch is needed.

> 
> Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
> ---
>   tools/testing/selftests/bpf/progs/perf_event_stackmap.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
> index b3fcb5274ee0..f793280a3238 100644
> --- a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
> +++ b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
> @@ -35,10 +35,10 @@ int oncpu(void *ctx)
>   	long val;
>   
>   	val = bpf_get_stackid(ctx, &stackmap, 0);
> -	if (val > 0)
> +	if (val >= 0)
>   		stackid_kernel = 2;
>   	val = bpf_get_stackid(ctx, &stackmap, BPF_F_USER_STACK);
> -	if (val > 0)
> +	if (val >= 0)
>   		stackid_user = 2;
>   
>   	trace = bpf_map_lookup_elem(&stackdata_map, &key);
> 
Linux 5.18-rc1 shows a couple of more bpf_get_stackid() in this function.
Removed in bpf-next - I assume.

The change is good. I would like to see it explained better in the
commit log.

With the commit log fixed to explain why this change is needed and
what happens if val equals to 0 condition isn't checked:

Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>

thanks,
-- Shuah
[PATCH bpf-next v2] selftests/bpf: Fix return value checks in perf_event_stackmap.c
Posted by Yuntao Wang 4 years, 1 month ago
The bpf_get_stackid() function may also return 0 on success.

Correct checks from 'val > 0' to 'val >= 0' to ensure that they cover all
possible success return values.

Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
---
v1 -> v2: update commit message

 tools/testing/selftests/bpf/progs/perf_event_stackmap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
index b3fcb5274ee0..f793280a3238 100644
--- a/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
+++ b/tools/testing/selftests/bpf/progs/perf_event_stackmap.c
@@ -35,10 +35,10 @@ int oncpu(void *ctx)
 	long val;
 
 	val = bpf_get_stackid(ctx, &stackmap, 0);
-	if (val > 0)
+	if (val >= 0)
 		stackid_kernel = 2;
 	val = bpf_get_stackid(ctx, &stackmap, BPF_F_USER_STACK);
-	if (val > 0)
+	if (val >= 0)
 		stackid_user = 2;
 
 	trace = bpf_map_lookup_elem(&stackdata_map, &key);
-- 
2.35.0.rc2
Re: [PATCH bpf-next v2] selftests/bpf: Fix return value checks in perf_event_stackmap.c
Posted by patchwork-bot+netdevbpf@kernel.org 4 years, 1 month ago
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Daniel Borkmann <daniel@iogearbox.net>:

On Fri,  8 Apr 2022 12:14:52 +0800 you wrote:
> The bpf_get_stackid() function may also return 0 on success.
> 
> Correct checks from 'val > 0' to 'val >= 0' to ensure that they cover all
> possible success return values.
> 
> Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
> 
> [...]

Here is the summary with links:
  - [bpf-next,v2] selftests/bpf: Fix return value checks in perf_event_stackmap.c
    https://git.kernel.org/bpf/bpf-next/c/658d87687cd5

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html