Requiring a conditional for every goto is tedious:
if (busyloop_timeout) {
goto fail_busyloop;
} else {
goto fail;
}
Move the conditional to into the fail_busyloop label so that it's safe
to jump to this label unconditionally.
This change makes the migrate_add_blocker() error case more consistent.
It jumped to fail_busyloop unconditionally whereas the memslots limits
error case was conditional.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
hw/virtio/vhost.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 6e17d631f7..2a01662b08 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -1388,18 +1388,16 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
error_report("vhost backend memory slots limit is less"
" than current number of present memory slots");
r = -1;
- if (busyloop_timeout) {
- goto fail_busyloop;
- } else {
- goto fail;
- }
+ goto fail_busyloop;
}
return 0;
fail_busyloop:
- while (--i >= 0) {
- vhost_virtqueue_set_busyloop_timeout(hdev, hdev->vq_index + i, 0);
+ if (busyloop_timeout) {
+ while (--i >= 0) {
+ vhost_virtqueue_set_busyloop_timeout(hdev, hdev->vq_index + i, 0);
+ }
}
fail:
hdev->nvqs = n_initialized_vqs;
--
2.29.2
On Mon, Feb 22, 2021 at 11:49:31AM +0000, Stefan Hajnoczi wrote: >Requiring a conditional for every goto is tedious: > > if (busyloop_timeout) { > goto fail_busyloop; > } else { > goto fail; > } > >Move the conditional to into the fail_busyloop label so that it's safe >to jump to this label unconditionally. > >This change makes the migrate_add_blocker() error case more consistent. >It jumped to fail_busyloop unconditionally whereas the memslots limits >error case was conditional. > >Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> >--- > hw/virtio/vhost.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> > >diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c >index 6e17d631f7..2a01662b08 100644 >--- a/hw/virtio/vhost.c >+++ b/hw/virtio/vhost.c >@@ -1388,18 +1388,16 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque, > error_report("vhost backend memory slots limit is less" > " than current number of present memory slots"); > r = -1; >- if (busyloop_timeout) { >- goto fail_busyloop; >- } else { >- goto fail; >- } >+ goto fail_busyloop; > } > > return 0; > > fail_busyloop: >- while (--i >= 0) { >- vhost_virtqueue_set_busyloop_timeout(hdev, hdev->vq_index + i, 0); >+ if (busyloop_timeout) { >+ while (--i >= 0) { >+ vhost_virtqueue_set_busyloop_timeout(hdev, hdev->vq_index + i, 0); >+ } > } > fail: > hdev->nvqs = n_initialized_vqs; >-- >2.29.2 >
On 2/22/21 12:49 PM, Stefan Hajnoczi wrote: > Requiring a conditional for every goto is tedious: > > if (busyloop_timeout) { > goto fail_busyloop; > } else { > goto fail; > } > > Move the conditional to into the fail_busyloop label so that it's safe > to jump to this label unconditionally. > > This change makes the migrate_add_blocker() error case more consistent. > It jumped to fail_busyloop unconditionally whereas the memslots limits > error case was conditional. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > hw/virtio/vhost.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
© 2016 - 2024 Red Hat, Inc.