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 <k.jen...@samsung.com> >> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >> --- >> 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.