diff mbox series

vhost: simplify vhost_dev_init() fail_busyloop label

Message ID 20210222114931.272308-1-stefanha@redhat.com
State New
Headers show
Series vhost: simplify vhost_dev_init() fail_busyloop label | expand

Commit Message

Stefan Hajnoczi Feb. 22, 2021, 11:49 a.m. UTC
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(-)

Comments

Stefano Garzarella Feb. 23, 2021, 10:53 a.m. UTC | #1
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
>
Philippe Mathieu-Daudé Feb. 23, 2021, 11:15 a.m. UTC | #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 mbox series

Patch

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;