bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
@ 2022-04-01  2:15 Haowen Bai
  2022-04-01  2:49 ` Yonghong Song
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Haowen Bai @ 2022-04-01  2:15 UTC (permalink / raw)
  To: Shuah Khan, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, David S. Miller, Jakub Kicinski,
	Jesper Dangaard Brouer
  Cc: Haowen Bai, linux-kselftest, netdev, bpf, linux-kernel

Return boolean values ("true" or "false") instead of 1 or 0 from bool
functions.  This fixes the following warnings from coccicheck:

./tools/testing/selftests/bpf/progs/test_xdp_noinline.c:567:9-10: WARNING:
return of 0/1 in function 'get_packet_dst' with return type bool
./tools/testing/selftests/bpf/progs/test_l4lb_noinline.c:221:9-10: WARNING:
return of 0/1 in function 'get_packet_dst' with return type bool

Signed-off-by: Haowen Bai <baihaowen@meizu.com>
---
 tools/testing/selftests/bpf/progs/test_l4lb_noinline.c |  2 +-
 tools/testing/selftests/bpf/progs/test_xdp_noinline.c  | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/bpf/progs/test_l4lb_noinline.c b/tools/testing/selftests/bpf/progs/test_l4lb_noinline.c
index 19e4d20..c8bc0c6 100644
--- a/tools/testing/selftests/bpf/progs/test_l4lb_noinline.c
+++ b/tools/testing/selftests/bpf/progs/test_l4lb_noinline.c
@@ -218,7 +218,7 @@ static __noinline bool get_packet_dst(struct real_definition **real,
 
 	if (hash != 0x358459b7 /* jhash of ipv4 packet */  &&
 	    hash != 0x2f4bc6bb /* jhash of ipv6 packet */)
-		return 0;
+		return false;
 
 	real_pos = bpf_map_lookup_elem(&ch_rings, &key);
 	if (!real_pos)
diff --git a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
index 596c4e7..125d872 100644
--- a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
+++ b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
@@ -564,22 +564,22 @@ static bool get_packet_dst(struct real_definition **real,
 	hash = get_packet_hash(pckt, hash_16bytes);
 	if (hash != 0x358459b7 /* jhash of ipv4 packet */  &&
 	    hash != 0x2f4bc6bb /* jhash of ipv6 packet */)
-		return 0;
+		return false;
 	key = 2 * vip_info->vip_num + hash % 2;
 	real_pos = bpf_map_lookup_elem(&ch_rings, &key);
 	if (!real_pos)
-		return 0;
+		return false;
 	key = *real_pos;
 	*real = bpf_map_lookup_elem(&reals, &key);
 	if (!(*real))
-		return 0;
+		return false;
 	if (!(vip_info->flags & (1 << 1))) {
 		__u32 conn_rate_key = 512 + 2;
 		struct lb_stats *conn_rate_stats =
 		    bpf_map_lookup_elem(&stats, &conn_rate_key);
 
 		if (!conn_rate_stats)
-			return 1;
+			return true;
 		cur_time = bpf_ktime_get_ns();
 		if ((cur_time - conn_rate_stats->v2) >> 32 > 0xffFFFF) {
 			conn_rate_stats->v1 = 1;
@@ -587,14 +587,14 @@ static bool get_packet_dst(struct real_definition **real,
 		} else {
 			conn_rate_stats->v1 += 1;
 			if (conn_rate_stats->v1 >= 1)
-				return 1;
+				return true;
 		}
 		if (pckt->flow.proto == IPPROTO_UDP)
 			new_dst_lru.atime = cur_time;
 		new_dst_lru.pos = key;
 		bpf_map_update_elem(lru_map, &pckt->flow, &new_dst_lru, 0);
 	}
-	return 1;
+	return true;
 }
 
 __attribute__ ((noinline))
-- 
2.7.4


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

* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
  2022-04-01  2:15 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions Haowen Bai
@ 2022-04-01  2:49 ` Yonghong Song
  2022-04-01 15:58 ` Shuah Khan
  2022-04-03 23:50 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 7+ messages in thread
From: Yonghong Song @ 2022-04-01  2:49 UTC (permalink / raw)
  To: Haowen Bai, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, John Fastabend,
	KP Singh, David S. Miller, Jakub Kicinski,
	Jesper Dangaard Brouer
  Cc: linux-kselftest, netdev, bpf, linux-kernel



On 3/31/22 7:15 PM, Haowen Bai wrote:
> Return boolean values ("true" or "false") instead of 1 or 0 from bool
> functions.  This fixes the following warnings from coccicheck:
> 
> ./tools/testing/selftests/bpf/progs/test_xdp_noinline.c:567:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> ./tools/testing/selftests/bpf/progs/test_l4lb_noinline.c:221:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> 
> Signed-off-by: Haowen Bai <baihaowen@meizu.com>

Acked-by: Yonghong Song <yhs@fb.com>

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

* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
  2022-04-01  2:15 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions Haowen Bai
  2022-04-01  2:49 ` Yonghong Song
@ 2022-04-01 15:58 ` Shuah Khan
  2022-04-03 23:50 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 7+ messages in thread
From: Shuah Khan @ 2022-04-01 15:58 UTC (permalink / raw)
  To: Haowen Bai, Shuah Khan, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, David S. Miller, Jakub Kicinski,
	Jesper Dangaard Brouer, Shuah Khan
  Cc: linux-kselftest, netdev, bpf, linux-kernel

On 3/31/22 8:15 PM, Haowen Bai wrote:
> Return boolean values ("true" or "false") instead of 1 or 0 from bool
> functions.  This fixes the following warnings from coccicheck:
> 
> ./tools/testing/selftests/bpf/progs/test_xdp_noinline.c:567:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> ./tools/testing/selftests/bpf/progs/test_l4lb_noinline.c:221:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> 

Thank you for including details on how the problem was found.

> Signed-off-by: Haowen Bai <baihaowen@meizu.com>
> ---

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

thanks,
-- Shuah

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

* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
  2022-04-01  2:15 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions Haowen Bai
  2022-04-01  2:49 ` Yonghong Song
  2022-04-01 15:58 ` Shuah Khan
@ 2022-04-03 23:50 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-04-03 23:50 UTC (permalink / raw)
  To: Haowen Bai
  Cc: shuah, ast, daniel, andrii, kafai, songliubraving, yhs,
	john.fastabend, kpsingh, davem, kuba, hawk, linux-kselftest,
	netdev, bpf, linux-kernel

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Fri, 1 Apr 2022 10:15:54 +0800 you wrote:
> Return boolean values ("true" or "false") instead of 1 or 0 from bool
> functions.  This fixes the following warnings from coccicheck:
> 
> ./tools/testing/selftests/bpf/progs/test_xdp_noinline.c:567:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> ./tools/testing/selftests/bpf/progs/test_l4lb_noinline.c:221:9-10: WARNING:
> return of 0/1 in function 'get_packet_dst' with return type bool
> 
> [...]

Here is the summary with links:
  - selftests/bpf: Return true/false (not 1/0) from bool functions
    https://git.kernel.org/bpf/bpf-next/c/f6d60facd9b6

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



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

* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
  2022-07-13 15:55 ` sdf
@ 2022-07-14  1:56   ` Linkui Xiao
  0 siblings, 0 replies; 7+ messages in thread
From: Linkui Xiao @ 2022-07-14  1:56 UTC (permalink / raw)
  To: sdf
  Cc: ast, daniel, davem, kuba, hawk, john.fastabend, andrii,
	martin.lau, song, yhs, kpsingh, haoluo, jolsa, mykolal, shuah,
	nathan, ndesaulniers, trix, xiaolinkui, netdev, bpf,
	linux-kselftest, linux-kernel, llvm

Thanks for your suggestion, I'll clean it up

On 7/13/22 23:55, sdf@google.com wrote:
> On 07/13, xiaolinkui wrote:
>> From: Linkui Xiao<xiaolinkui@kylinos.cn>
>                    ^ space here?
>
>> Return boolean values ("true" or "false") instead of 1 or 0 from bool
>> functions.  This fixes the following warnings from coccicheck:
>
>> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:407:9-10: WARNING:
>> return of 0/1 in function 'decap_v4' with return type bool
>> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:389:9-10: WARNING:
>> return of 0/1 in function 'decap_v6' with return type bool
>> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:290:9-10: WARNING:
>> return of 0/1 in function 'encap_v6' with return type bool
>> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:264:9-10: WARNING:
>> return of 0/1 in function 'parse_tcp' with return type bool
>> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:242:9-10: WARNING:
>> return of 0/1 in function 'parse_udp' with return type bool
>
>> Generated by: scripts/coccinelle/misc/boolreturn.cocci
>
>> Signed-off-by: Linkui Xiao<xiaolinkui@kylinos.cn>
>
> This patch likely needs a resend with proper [PATCH bpf] or
> [PATCH bpf-next] subject to end up in patchwork and to be picked up.
>
> Take a look at Documentation/bpf/bpf_devel_QA.rst section "Q: How do I
> indicate which tree (bpf vs. bpf-next) my patch should be applied to?".
>
> Since that's a cleanup, you most likely want to target bpf-next.
>
>> ---
>>   .../selftests/bpf/progs/test_xdp_noinline.c   | 30 +++++++++----------
>>   1 file changed, 15 insertions(+), 15 deletions(-)
>
>> diff --git a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c 
>> b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
>> index 125d872d7981..ba48fcb98ab2 100644
>> --- a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
>> +++ b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
>> @@ -239,7 +239,7 @@ bool parse_udp(void *data, void *data_end,
>>       udp = data + off;
>
>>       if (udp + 1 > data_end)
>> -        return 0;
>> +        return false;
>>       if (!is_icmp) {
>>           pckt->flow.port16[0] = udp->source;
>>           pckt->flow.port16[1] = udp->dest;
>> @@ -247,7 +247,7 @@ bool parse_udp(void *data, void *data_end,
>>           pckt->flow.port16[0] = udp->dest;
>>           pckt->flow.port16[1] = udp->source;
>>       }
>> -    return 1;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> @@ -261,7 +261,7 @@ bool parse_tcp(void *data, void *data_end,
>
>>       tcp = data + off;
>>       if (tcp + 1 > data_end)
>> -        return 0;
>> +        return false;
>>       if (tcp->syn)
>>           pckt->flags |= (1 << 1);
>>       if (!is_icmp) {
>> @@ -271,7 +271,7 @@ bool parse_tcp(void *data, void *data_end,
>>           pckt->flow.port16[0] = tcp->dest;
>>           pckt->flow.port16[1] = tcp->source;
>>       }
>> -    return 1;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> @@ -287,7 +287,7 @@ bool encap_v6(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>       void *data;
>
>>       if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct ipv6hdr)))
>> -        return 0;
>> +        return false;
>>       data = (void *)(long)xdp->data;
>>       data_end = (void *)(long)xdp->data_end;
>>       new_eth = data;
>> @@ -295,7 +295,7 @@ bool encap_v6(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>       old_eth = data + sizeof(struct ipv6hdr);
>>       if (new_eth + 1 > data_end ||
>>           old_eth + 1 > data_end || ip6h + 1 > data_end)
>> -        return 0;
>> +        return false;
>>       memcpy(new_eth->eth_dest, cval->mac, 6);
>>       memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
>>       new_eth->eth_proto = 56710;
>> @@ -314,7 +314,7 @@ bool encap_v6(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>       ip6h->saddr.in6_u.u6_addr32[2] = 3;
>>       ip6h->saddr.in6_u.u6_addr32[3] = ip_suffix;
>>       memcpy(ip6h->daddr.in6_u.u6_addr32, dst->dstv6, 16);
>> -    return 1;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> @@ -335,7 +335,7 @@ bool encap_v4(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>       ip_suffix <<= 15;
>>       ip_suffix ^= pckt->flow.src;
>>       if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr)))
>> -        return 0;
>> +        return false;
>>       data = (void *)(long)xdp->data;
>>       data_end = (void *)(long)xdp->data_end;
>>       new_eth = data;
>> @@ -343,7 +343,7 @@ bool encap_v4(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>       old_eth = data + sizeof(struct iphdr);
>>       if (new_eth + 1 > data_end ||
>>           old_eth + 1 > data_end || iph + 1 > data_end)
>> -        return 0;
>> +        return false;
>>       memcpy(new_eth->eth_dest, cval->mac, 6);
>>       memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
>>       new_eth->eth_proto = 8;
>> @@ -367,8 +367,8 @@ bool encap_v4(struct xdp_md *xdp, struct 
>> ctl_value *cval,
>>           csum += *next_iph_u16++;
>>       iph->check = ~((csum & 0xffff) + (csum >> 16));
>>       if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
>> -        return 0;
>> -    return 1;
>> +        return false;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> @@ -386,10 +386,10 @@ bool decap_v6(struct xdp_md *xdp, void **data, 
>> void **data_end, bool inner_v4)
>>       else
>>           new_eth->eth_proto = 56710;
>>       if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct ipv6hdr)))
>> -        return 0;
>> +        return false;
>>       *data = (void *)(long)xdp->data;
>>       *data_end = (void *)(long)xdp->data_end;
>> -    return 1;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> @@ -404,10 +404,10 @@ bool decap_v4(struct xdp_md *xdp, void **data, 
>> void **data_end)
>>       memcpy(new_eth->eth_dest, old_eth->eth_dest, 6);
>>       new_eth->eth_proto = 8;
>>       if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
>> -        return 0;
>> +        return false;
>>       *data = (void *)(long)xdp->data;
>>       *data_end = (void *)(long)xdp->data_end;
>> -    return 1;
>> +    return true;
>>   }
>
>>   static __attribute__ ((noinline))
>> -- 
>> 2.17.1
>

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

* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
  2022-07-13  1:10 xiaolinkui
@ 2022-07-13 15:55 ` sdf
  2022-07-14  1:56   ` Linkui Xiao
  0 siblings, 1 reply; 7+ messages in thread
From: sdf @ 2022-07-13 15:55 UTC (permalink / raw)
  To: xiaolinkui
  Cc: ast, daniel, davem, kuba, hawk, john.fastabend, andrii,
	martin.lau, song, yhs, kpsingh, haoluo, jolsa, mykolal, shuah,
	nathan, ndesaulniers, trix, xiaolinkui, netdev, bpf,
	linux-kselftest, linux-kernel, llvm

On 07/13, xiaolinkui wrote:
> From: Linkui Xiao<xiaolinkui@kylinos.cn>
                    ^ space here?

> Return boolean values ("true" or "false") instead of 1 or 0 from bool
> functions.  This fixes the following warnings from coccicheck:

> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:407:9-10: WARNING:
> return of 0/1 in function 'decap_v4' with return type bool
> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:389:9-10: WARNING:
> return of 0/1 in function 'decap_v6' with return type bool
> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:290:9-10: WARNING:
> return of 0/1 in function 'encap_v6' with return type bool
> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:264:9-10: WARNING:
> return of 0/1 in function 'parse_tcp' with return type bool
> tools/testing/selftests/bpf/progs/test_xdp_noinline.c:242:9-10: WARNING:
> return of 0/1 in function 'parse_udp' with return type bool

> Generated by: scripts/coccinelle/misc/boolreturn.cocci

> Signed-off-by: Linkui Xiao<xiaolinkui@kylinos.cn>

This patch likely needs a resend with proper [PATCH bpf] or
[PATCH bpf-next] subject to end up in patchwork and to be picked up.

Take a look at Documentation/bpf/bpf_devel_QA.rst section "Q: How do I
indicate which tree (bpf vs. bpf-next) my patch should be applied to?".

Since that's a cleanup, you most likely want to target bpf-next.

> ---
>   .../selftests/bpf/progs/test_xdp_noinline.c   | 30 +++++++++----------
>   1 file changed, 15 insertions(+), 15 deletions(-)

> diff --git a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c  
> b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
> index 125d872d7981..ba48fcb98ab2 100644
> --- a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
> +++ b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
> @@ -239,7 +239,7 @@ bool parse_udp(void *data, void *data_end,
>   	udp = data + off;

>   	if (udp + 1 > data_end)
> -		return 0;
> +		return false;
>   	if (!is_icmp) {
>   		pckt->flow.port16[0] = udp->source;
>   		pckt->flow.port16[1] = udp->dest;
> @@ -247,7 +247,7 @@ bool parse_udp(void *data, void *data_end,
>   		pckt->flow.port16[0] = udp->dest;
>   		pckt->flow.port16[1] = udp->source;
>   	}
> -	return 1;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> @@ -261,7 +261,7 @@ bool parse_tcp(void *data, void *data_end,

>   	tcp = data + off;
>   	if (tcp + 1 > data_end)
> -		return 0;
> +		return false;
>   	if (tcp->syn)
>   		pckt->flags |= (1 << 1);
>   	if (!is_icmp) {
> @@ -271,7 +271,7 @@ bool parse_tcp(void *data, void *data_end,
>   		pckt->flow.port16[0] = tcp->dest;
>   		pckt->flow.port16[1] = tcp->source;
>   	}
> -	return 1;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> @@ -287,7 +287,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   	void *data;

>   	if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct ipv6hdr)))
> -		return 0;
> +		return false;
>   	data = (void *)(long)xdp->data;
>   	data_end = (void *)(long)xdp->data_end;
>   	new_eth = data;
> @@ -295,7 +295,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   	old_eth = data + sizeof(struct ipv6hdr);
>   	if (new_eth + 1 > data_end ||
>   	    old_eth + 1 > data_end || ip6h + 1 > data_end)
> -		return 0;
> +		return false;
>   	memcpy(new_eth->eth_dest, cval->mac, 6);
>   	memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
>   	new_eth->eth_proto = 56710;
> @@ -314,7 +314,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   	ip6h->saddr.in6_u.u6_addr32[2] = 3;
>   	ip6h->saddr.in6_u.u6_addr32[3] = ip_suffix;
>   	memcpy(ip6h->daddr.in6_u.u6_addr32, dst->dstv6, 16);
> -	return 1;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> @@ -335,7 +335,7 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   	ip_suffix <<= 15;
>   	ip_suffix ^= pckt->flow.src;
>   	if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr)))
> -		return 0;
> +		return false;
>   	data = (void *)(long)xdp->data;
>   	data_end = (void *)(long)xdp->data_end;
>   	new_eth = data;
> @@ -343,7 +343,7 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   	old_eth = data + sizeof(struct iphdr);
>   	if (new_eth + 1 > data_end ||
>   	    old_eth + 1 > data_end || iph + 1 > data_end)
> -		return 0;
> +		return false;
>   	memcpy(new_eth->eth_dest, cval->mac, 6);
>   	memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
>   	new_eth->eth_proto = 8;
> @@ -367,8 +367,8 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value  
> *cval,
>   		csum += *next_iph_u16++;
>   	iph->check = ~((csum & 0xffff) + (csum >> 16));
>   	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
> -		return 0;
> -	return 1;
> +		return false;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> @@ -386,10 +386,10 @@ bool decap_v6(struct xdp_md *xdp, void **data, void  
> **data_end, bool inner_v4)
>   	else
>   		new_eth->eth_proto = 56710;
>   	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct ipv6hdr)))
> -		return 0;
> +		return false;
>   	*data = (void *)(long)xdp->data;
>   	*data_end = (void *)(long)xdp->data_end;
> -	return 1;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> @@ -404,10 +404,10 @@ bool decap_v4(struct xdp_md *xdp, void **data, void  
> **data_end)
>   	memcpy(new_eth->eth_dest, old_eth->eth_dest, 6);
>   	new_eth->eth_proto = 8;
>   	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
> -		return 0;
> +		return false;
>   	*data = (void *)(long)xdp->data;
>   	*data_end = (void *)(long)xdp->data_end;
> -	return 1;
> +	return true;
>   }

>   static __attribute__ ((noinline))
> --
> 2.17.1


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

* [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
@ 2022-07-13  1:10 xiaolinkui
  2022-07-13 15:55 ` sdf
  0 siblings, 1 reply; 7+ messages in thread
From: xiaolinkui @ 2022-07-13  1:10 UTC (permalink / raw)
  To: ast, daniel, davem, kuba, hawk, john.fastabend, andrii,
	martin.lau, song, yhs, kpsingh, sdf, haoluo, jolsa, mykolal,
	shuah, nathan, ndesaulniers, trix, xiaolinkui, xiaolinkui
  Cc: netdev, bpf, linux-kselftest, linux-kernel, llvm

From: Linkui Xiao<xiaolinkui@kylinos.cn>

Return boolean values ("true" or "false") instead of 1 or 0 from bool
functions.  This fixes the following warnings from coccicheck:

tools/testing/selftests/bpf/progs/test_xdp_noinline.c:407:9-10: WARNING:
return of 0/1 in function 'decap_v4' with return type bool
tools/testing/selftests/bpf/progs/test_xdp_noinline.c:389:9-10: WARNING:
return of 0/1 in function 'decap_v6' with return type bool
tools/testing/selftests/bpf/progs/test_xdp_noinline.c:290:9-10: WARNING:
return of 0/1 in function 'encap_v6' with return type bool
tools/testing/selftests/bpf/progs/test_xdp_noinline.c:264:9-10: WARNING:
return of 0/1 in function 'parse_tcp' with return type bool
tools/testing/selftests/bpf/progs/test_xdp_noinline.c:242:9-10: WARNING:
return of 0/1 in function 'parse_udp' with return type bool

Generated by: scripts/coccinelle/misc/boolreturn.cocci

Signed-off-by: Linkui Xiao<xiaolinkui@kylinos.cn>
---
 .../selftests/bpf/progs/test_xdp_noinline.c   | 30 +++++++++----------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
index 125d872d7981..ba48fcb98ab2 100644
--- a/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
+++ b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
@@ -239,7 +239,7 @@ bool parse_udp(void *data, void *data_end,
 	udp = data + off;
 
 	if (udp + 1 > data_end)
-		return 0;
+		return false;
 	if (!is_icmp) {
 		pckt->flow.port16[0] = udp->source;
 		pckt->flow.port16[1] = udp->dest;
@@ -247,7 +247,7 @@ bool parse_udp(void *data, void *data_end,
 		pckt->flow.port16[0] = udp->dest;
 		pckt->flow.port16[1] = udp->source;
 	}
-	return 1;
+	return true;
 }
 
 static __attribute__ ((noinline))
@@ -261,7 +261,7 @@ bool parse_tcp(void *data, void *data_end,
 
 	tcp = data + off;
 	if (tcp + 1 > data_end)
-		return 0;
+		return false;
 	if (tcp->syn)
 		pckt->flags |= (1 << 1);
 	if (!is_icmp) {
@@ -271,7 +271,7 @@ bool parse_tcp(void *data, void *data_end,
 		pckt->flow.port16[0] = tcp->dest;
 		pckt->flow.port16[1] = tcp->source;
 	}
-	return 1;
+	return true;
 }
 
 static __attribute__ ((noinline))
@@ -287,7 +287,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value *cval,
 	void *data;
 
 	if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct ipv6hdr)))
-		return 0;
+		return false;
 	data = (void *)(long)xdp->data;
 	data_end = (void *)(long)xdp->data_end;
 	new_eth = data;
@@ -295,7 +295,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value *cval,
 	old_eth = data + sizeof(struct ipv6hdr);
 	if (new_eth + 1 > data_end ||
 	    old_eth + 1 > data_end || ip6h + 1 > data_end)
-		return 0;
+		return false;
 	memcpy(new_eth->eth_dest, cval->mac, 6);
 	memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
 	new_eth->eth_proto = 56710;
@@ -314,7 +314,7 @@ bool encap_v6(struct xdp_md *xdp, struct ctl_value *cval,
 	ip6h->saddr.in6_u.u6_addr32[2] = 3;
 	ip6h->saddr.in6_u.u6_addr32[3] = ip_suffix;
 	memcpy(ip6h->daddr.in6_u.u6_addr32, dst->dstv6, 16);
-	return 1;
+	return true;
 }
 
 static __attribute__ ((noinline))
@@ -335,7 +335,7 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value *cval,
 	ip_suffix <<= 15;
 	ip_suffix ^= pckt->flow.src;
 	if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr)))
-		return 0;
+		return false;
 	data = (void *)(long)xdp->data;
 	data_end = (void *)(long)xdp->data_end;
 	new_eth = data;
@@ -343,7 +343,7 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value *cval,
 	old_eth = data + sizeof(struct iphdr);
 	if (new_eth + 1 > data_end ||
 	    old_eth + 1 > data_end || iph + 1 > data_end)
-		return 0;
+		return false;
 	memcpy(new_eth->eth_dest, cval->mac, 6);
 	memcpy(new_eth->eth_source, old_eth->eth_dest, 6);
 	new_eth->eth_proto = 8;
@@ -367,8 +367,8 @@ bool encap_v4(struct xdp_md *xdp, struct ctl_value *cval,
 		csum += *next_iph_u16++;
 	iph->check = ~((csum & 0xffff) + (csum >> 16));
 	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
-		return 0;
-	return 1;
+		return false;
+	return true;
 }
 
 static __attribute__ ((noinline))
@@ -386,10 +386,10 @@ bool decap_v6(struct xdp_md *xdp, void **data, void **data_end, bool inner_v4)
 	else
 		new_eth->eth_proto = 56710;
 	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct ipv6hdr)))
-		return 0;
+		return false;
 	*data = (void *)(long)xdp->data;
 	*data_end = (void *)(long)xdp->data_end;
-	return 1;
+	return true;
 }
 
 static __attribute__ ((noinline))
@@ -404,10 +404,10 @@ bool decap_v4(struct xdp_md *xdp, void **data, void **data_end)
 	memcpy(new_eth->eth_dest, old_eth->eth_dest, 6);
 	new_eth->eth_proto = 8;
 	if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
-		return 0;
+		return false;
 	*data = (void *)(long)xdp->data;
 	*data_end = (void *)(long)xdp->data_end;
-	return 1;
+	return true;
 }
 
 static __attribute__ ((noinline))
-- 
2.17.1


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

end of thread, other threads:[~2022-07-14  1:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-01  2:15 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions Haowen Bai
2022-04-01  2:49 ` Yonghong Song
2022-04-01 15:58 ` Shuah Khan
2022-04-03 23:50 ` patchwork-bot+netdevbpf
2022-07-13  1:10 xiaolinkui
2022-07-13 15:55 ` sdf
2022-07-14  1:56   ` Linkui Xiao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).