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 > @@ -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; > }
Not related to this patch, but it is slightly confusing that these functions actually already return a negative errno, but then we overwrite it. Reviewed-by: Klaus Jensen <[email protected]>
signature.asc
Description: PGP signature
