[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fi
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova |
Date: |
Thu, 26 Aug 2021 21:50:11 +0200 |
Have qemu_vfio_find_fixed_iova() and qemu_vfio_find_temp_iova()
propagate eventual errors to callers.
Suggested-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@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
- [PATCH v2 03/11] util/vfio-helpers: Replace qemu_mutex_lock() calls with QEMU_LOCK_GUARD, (continued)
- [PATCH v2 07/11] util/vfio-helpers: Extract qemu_vfio_water_mark_reached(), Philippe Mathieu-Daudé, 2021/08/26
- [PATCH v2 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova,
Philippe Mathieu-Daudé <=
- [PATCH v2 09/11] util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly, Philippe Mathieu-Daudé, 2021/08/26
- [PATCH v2 10/11] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error, Philippe Mathieu-Daudé, 2021/08/26
- [PATCH v2 11/11] block/nvme: Only report VFIO error on failed retry, Philippe Mathieu-Daudé, 2021/08/26