[PATCH v2] selftests/bpf: Fix unsigned expression compared with zero

Kang Minchul posted 1 patch 3 years, 5 months ago
tools/testing/selftests/bpf/xskxceiver.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] selftests/bpf: Fix unsigned expression compared with zero
Posted by Kang Minchul 3 years, 5 months ago
Variable ret is compared with zero even though it was set as u32.
So u32 to int conversion is needed.

Signed-off-by: Kang Minchul <tegongkang@gmail.com>
---
 tools/testing/selftests/bpf/xskxceiver.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index 681a5db80dae..162d3a516f2c 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -1006,7 +1006,8 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb, struct pollfd *fd
 {
 	struct xsk_socket_info *xsk = ifobject->xsk;
 	bool use_poll = ifobject->use_poll;
-	u32 i, idx = 0, ret, valid_pkts = 0;
+	u32 i, idx = 0, valid_pkts = 0;
+	int ret;
 
 	while (xsk_ring_prod__reserve(&xsk->tx, BATCH_SIZE, &idx) < BATCH_SIZE) {
 		if (use_poll) {
-- 
2.34.1
Re: [PATCH v2] selftests/bpf: Fix unsigned expression compared with zero
Posted by Randy Dunlap 3 years, 5 months ago
Hi--

On 11/5/22 03:25, Kang Minchul wrote:
> Variable ret is compared with zero even though it was set as u32.

It's OK to compare a u32 == to zero, but 'ret' is compared to < 0,
which it cannot be. Better explanation here would be good.
Thanks.

> So u32 to int conversion is needed.
> 
> Signed-off-by: Kang Minchul <tegongkang@gmail.com>
> ---
>  tools/testing/selftests/bpf/xskxceiver.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
> index 681a5db80dae..162d3a516f2c 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.c
> +++ b/tools/testing/selftests/bpf/xskxceiver.c
> @@ -1006,7 +1006,8 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb, struct pollfd *fd
>  {
>  	struct xsk_socket_info *xsk = ifobject->xsk;
>  	bool use_poll = ifobject->use_poll;
> -	u32 i, idx = 0, ret, valid_pkts = 0;
> +	u32 i, idx = 0, valid_pkts = 0;
> +	int ret;
>  
>  	while (xsk_ring_prod__reserve(&xsk->tx, BATCH_SIZE, &idx) < BATCH_SIZE) {
>  		if (use_poll) {

-- 
~Randy
Re: [PATCH v2] selftests/bpf: Fix unsigned expression compared with zero
Posted by Kang Minchul 3 years, 5 months ago
2022년 11월 6일 (일) 오전 1:16, Randy Dunlap <rdunlap@infradead.org>님이 작성:
>
> Hi--
>
> On 11/5/22 03:25, Kang Minchul wrote:
> > Variable ret is compared with zero even though it was set as u32.
>
> It's OK to compare a u32 == to zero, but 'ret' is compared to < 0,
> which it cannot be. Better explanation here would be good.
> Thanks.
> ~Randy

Thanks for your kind feedback!
I guess I have to change the message more precisely.
I'll send the amended patch (PATCH v3) as you mentioned.

Regards,

Kang Minchul