2022-11-05 10:36:03

by Kang Minchul

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

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 <[email protected]>
---
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



2022-11-05 16:58:28

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/bpf: Fix unsigned expression compared with zero

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 <[email protected]>
> ---
> 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

2022-11-05 17:10:35

by Kang Minchul

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/bpf: Fix unsigned expression compared with zero

2022년 11월 6일 (일) 오전 1:16, Randy Dunlap <[email protected]>님이 작성:
>
> 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