On 8/27/21 7:57 AM, Klaus Jensen wrote:
> On Aug 26 21:50, Philippe Mathieu-Daudé wrote:
>> Have qemu_vfio_find_fixed_iova() and qemu_vfio_find_temp_iova()
>> propagate eventual errors to callers.
>>
>> Suggested-by: Klaus Jensen <[email protected]>
>> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
>> ---
>> util/vfio-helpers.c | 14 ++++++++++----
>> 1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
>> index 306b5a83e48..7de5081dbd3 100644
>> --- a/util/vfio-helpers.c
>> +++ b/util/vfio-helpers.c
>> static int
>> -qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
>> +qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova,
>> + Error **errp)
>> {
>> int i;
>>
>> @@ -718,6 +722,8 @@ qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size,
>> uint64_t *iova)
>> return 0;
>> }
>> }
>> + error_setg(errp, "temporary iova range not found");
>> +
>> return -ENOMEM;
>> }
>> @@ -776,7 +782,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host,
>> size_t size,
>> }
>> qemu_vfio_dump_mappings(s);
>> } else {
>> - if (qemu_vfio_find_temp_iova(s, size, &iova0)) {
>> + if (qemu_vfio_find_temp_iova(s, size, &iova0, errp)) {
>> ret = -ENOMEM;
>> goto out;
>> }
>
> Not related to this patch, but it is slightly confusing that these
> functions actually already return a negative errno, but then we
> overwrite it.
Good point. I'll make it return a boolean.