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 @@ -678,7 +678,8 @@ static bool qemu_vfio_verify_mappings(QEMUVFIOState *s) } static int -qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size, uint64_t *iova) +qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size, uint64_t *iova, + Error **errp) { int i; @@ -696,11 +697,14 @@ qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size, uint64_t *iova) return 0; } } + error_setg(errp, "fixed iova range not found"); + return -ENOMEM; } 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; } @@ -762,7 +768,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size, goto out; } if (!temporary) { - if (qemu_vfio_find_fixed_iova(s, size, &iova0)) { + if (qemu_vfio_find_fixed_iova(s, size, &iova0, errp) < 0) { ret = -ENOMEM; goto out; } @@ -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; } -- 2.31.1