aboutsummaryrefslogtreecommitdiff
path: root/hw/block/vhost-user-blk.c
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2022-11-07 12:14:07 +0000
committerMichael S. Tsirkin <mst@redhat.com>2022-11-07 14:08:18 -0500
commit259d69c00b67c02a67f3bdbeeea71c2c0af76c35 (patch)
treeec6be00cb03701e3f035d041ee2d451d7e3b8998 /hw/block/vhost-user-blk.c
parentb22fbc5bcb6bd2412889f2c48a29c86880a30552 (diff)
downloadqemu-259d69c00b67c02a67f3bdbeeea71c2c0af76c35.zip
qemu-259d69c00b67c02a67f3bdbeeea71c2c0af76c35.tar.gz
qemu-259d69c00b67c02a67f3bdbeeea71c2c0af76c35.tar.bz2
hw/virtio: introduce virtio_device_should_start
The previous fix to virtio_device_started revealed a problem in its use by both the core and the device code. The core code should be able to handle the device "starting" while the VM isn't running to handle the restoration of migration state. To solve this duel use introduce a new helper for use by the vhost-user backends who all use it to feed a should_start variable. We can also pick up a change vhost_user_blk_set_status while we are at it which follows the same pattern. Fixes: 9f6bcfd99f (hw/virtio: move vm_running check to virtio_device_started) Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: "Michael S. Tsirkin" <mst@redhat.com> Message-Id: <20221107121407.1010913-1-alex.bennee@linaro.org>
Diffstat (limited to 'hw/block/vhost-user-blk.c')
-rw-r--r--hw/block/vhost-user-blk.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index 28409c9..16ad400 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -226,14 +226,10 @@ static void vhost_user_blk_stop(VirtIODevice *vdev)
static void vhost_user_blk_set_status(VirtIODevice *vdev, uint8_t status)
{
VHostUserBlk *s = VHOST_USER_BLK(vdev);
- bool should_start = virtio_device_started(vdev, status);
+ bool should_start = virtio_device_should_start(vdev, status);
Error *local_err = NULL;
int ret;
- if (!vdev->vm_running) {
- should_start = false;
- }
-
if (!s->connected) {
return;
}