[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 06/52] migration/rdma: Clean up two more harmless signed vs.
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 06/52] migration/rdma: Clean up two more harmless signed vs. unsigned issues |
Date: |
Wed, 20 Sep 2023 15:11:18 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Fabiano Rosas <farosas@suse.de> writes:
> Markus Armbruster <armbru@redhat.com> writes:
>
>> qemu_rdma_exchange_get_response() compares int parameter @expecting
>> with uint32_t head->type. Actual arguments are non-negative
>> enumeration constants, RDMAControlHeader uint32_t member type, or
>> qemu_rdma_exchange_recv() int parameter expecting. Actual arguments
>> for the latter are non-negative enumeration constants. Change both
>> parameters to uint32_t.
>>
>> In qio_channel_rdma_readv(), loop control variable @i is ssize_t, and
>> counts from 0 up to @niov, which is size_t. Change @i to size_t.
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Reviewed-by: Fabiano Rosas <farosas@suse.de>
>
> just a comment...
>
>> static int qemu_rdma_exchange_recv(RDMAContext *rdma, RDMAControlHeader
>> *head,
>> - int expecting)
>> + uint32_t expecting)
>> {
>> RDMAControlHeader ready = {
>> .len = 0,
>> @@ -2851,7 +2851,7 @@ static ssize_t qio_channel_rdma_readv(QIOChannel *ioc,
>> RDMAContext *rdma;
>> RDMAControlHeader head;
>> int ret = 0;
>> - ssize_t i;
>> + size_t i;
>> size_t done = 0;
>
> It seems the idea was for 'done' to be ssize_t like in
> qio_channel_rdma_writev()
You're right, the two functions are still inconsistent: @done is size_t
here and ssize_t there.
Hmm, there's yet another mess:
ret = qemu_rdma_fill(rdma, data, want, 0);
done += ret;
want -= ret;
qemu_rdma_fill() returns size_t, @done is size_t or ssize_t, @want is
@size_t, but @ret is int. Unwanted truncation is theoretically
possible.
Separate patch.
Thanks!
- Re: [PATCH 02/52] migration/rdma: Clean up qemu_rdma_data_init()'s return type, (continued)
- [PATCH 27/52] migration/rdma: Drop superfluous assignments to @ret, Markus Armbruster, 2023/09/18
- [PATCH 20/52] migration/rdma: Drop dead qemu_rdma_data_init() code for !@host_port, Markus Armbruster, 2023/09/18
- [PATCH 46/52] migration/rdma: Silence qemu_rdma_reg_control(), Markus Armbruster, 2023/09/18
- [PATCH 06/52] migration/rdma: Clean up two more harmless signed vs. unsigned issues, Markus Armbruster, 2023/09/18
- [PATCH 32/52] migration/rdma: Fix error handling around rdma_getaddrinfo(), Markus Armbruster, 2023/09/18
- [PATCH 11/52] migration/rdma: Drop rdma_add_block() error handling, Markus Armbruster, 2023/09/18
- [PATCH 34/52] migration/rdma: Convert qemu_rdma_exchange_recv() to Error, Markus Armbruster, 2023/09/18
- [PATCH 30/52] migration/rdma: Delete inappropriate error_report() in macro ERROR(), Markus Armbruster, 2023/09/18