diff mbox series

[5/9] util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map()

Message ID 20210824141142.1165291-6-philmd@redhat.com
State New
Headers show
Series block/nvme: Rework error reporting | expand

Commit Message

Philippe Mathieu-Daudé Aug. 24, 2021, 2:11 p.m. UTC
qemu_vfio_add_mapping() returns a pointer to an indexed entry
in pre-allocated QEMUVFIOState::mappings[], thus can not be NULL.
Remove the pointless check.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 util/vfio-helpers.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Klaus Jensen Aug. 25, 2021, 11:53 a.m. UTC | #1
On Aug 24 16:11, Philippe Mathieu-Daudé wrote:
> qemu_vfio_add_mapping() returns a pointer to an indexed entry
> in pre-allocated QEMUVFIOState::mappings[], thus can not be NULL.
> Remove the pointless check.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  util/vfio-helpers.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
> index d956866b4e9..e7909222cfd 100644
> --- a/util/vfio-helpers.c
> +++ b/util/vfio-helpers.c
> @@ -751,10 +751,6 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
>              }
>  
>              mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
> -            if (!mapping) {
> -                ret = -ENOMEM;
> -                goto out;
> -            }
>              assert(qemu_vfio_verify_mappings(s));
>              ret = qemu_vfio_do_mapping(s, host, size, iova0);
>              if (ret) {
> -- 
> 2.31.1
> 
> 

This looks OK.

But maybe it would be prudent to assert that index is within bounds of
s->mappings in qemu_vfio_add_mapping? E.g.,

   assert(index >= 0 && index < s->nr_mappings + 1);
Klaus Jensen Aug. 25, 2021, 11:55 a.m. UTC | #2
On Aug 25 13:53, Klaus Jensen wrote:
> On Aug 24 16:11, Philippe Mathieu-Daudé wrote:
> > qemu_vfio_add_mapping() returns a pointer to an indexed entry
> > in pre-allocated QEMUVFIOState::mappings[], thus can not be NULL.
> > Remove the pointless check.
> > 
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> >  util/vfio-helpers.c | 4 ----
> >  1 file changed, 4 deletions(-)
> > 
> > diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
> > index d956866b4e9..e7909222cfd 100644
> > --- a/util/vfio-helpers.c
> > +++ b/util/vfio-helpers.c
> > @@ -751,10 +751,6 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
> >              }
> >  
> >              mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
> > -            if (!mapping) {
> > -                ret = -ENOMEM;
> > -                goto out;
> > -            }
> >              assert(qemu_vfio_verify_mappings(s));
> >              ret = qemu_vfio_do_mapping(s, host, size, iova0);
> >              if (ret) {
> > -- 
> > 2.31.1
> > 
> > 
> 
> This looks OK.
> 
> But maybe it would be prudent to assert that index is within bounds of
> s->mappings in qemu_vfio_add_mapping? E.g.,
> 
>    assert(index >= 0 && index < s->nr_mappings + 1);

It's not like `if (!mapping) {` would have cought and out-of-bounds
index value anyway, so

Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
diff mbox series

Patch

diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index d956866b4e9..e7909222cfd 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -751,10 +751,6 @@  int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
             }
 
             mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
-            if (!mapping) {
-                ret = -ENOMEM;
-                goto out;
-            }
             assert(qemu_vfio_verify_mappings(s));
             ret = qemu_vfio_do_mapping(s, host, size, iova0);
             if (ret) {