virtio-balloon: remove BUG() in init_vqs
authorWei Wang <wei.w.wang@intel.com>
Thu, 16 Aug 2018 07:50:56 +0000 (15:50 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 21 Aug 2018 21:56:24 +0000 (00:56 +0300)
It's a bit overkill to use BUG when failing to add an entry to the
stats_vq in init_vqs. So remove it and just return the error to the
caller to bail out nicely.

Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/virtio/virtio_balloon.c

index 3988c09..8100e77 100644 (file)
@@ -455,9 +455,13 @@ static int init_vqs(struct virtio_balloon *vb)
                num_stats = update_balloon_stats(vb);
 
                sg_init_one(&sg, vb->stats, sizeof(vb->stats[0]) * num_stats);
-               if (virtqueue_add_outbuf(vb->stats_vq, &sg, 1, vb, GFP_KERNEL)
-                   < 0)
-                       BUG();
+               err = virtqueue_add_outbuf(vb->stats_vq, &sg, 1, vb,
+                                          GFP_KERNEL);
+               if (err) {
+                       dev_warn(&vb->vdev->dev, "%s: add stat_vq failed\n",
+                                __func__);
+                       return err;
+               }
                virtqueue_kick(vb->stats_vq);
        }
        return 0;