* [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; 3+ 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] 3+ messages in thread
* Re: [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions
2022-07-13 1:10 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions xiaolinkui
@ 2022-07-13 15:55 ` sdf
2022-07-14 1:56 ` Linkui Xiao
0 siblings, 1 reply; 3+ 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] 3+ 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; 3+ 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] 3+ messages in thread
end of thread, other threads:[~2022-07-14 1:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-13 1:10 [PATCH] selftests/bpf: Return true/false (not 1/0) from bool functions 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