Message ID | 20210222114931.272308-1-stefanha@redhat.com |
---|---|
State | New |
Headers | show |
Series | vhost: simplify vhost_dev_init() fail_busyloop label | expand |
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>
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;
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(-)