Software assisted live migration does not allocate vhost log. Signed-off-by: Eugenio Pérez <eperezma@xxxxxxxxxx> --- hw/virtio/vhost.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 2adb2718c1..9cbd52a7f1 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -828,6 +828,10 @@ static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) int r, i, idx; hwaddr addr; + if (enable_log) { + vhost_dev_log_resize(dev, vhost_get_log_size(dev)); + } + r = vhost_dev_set_features(dev, enable_log); if (r < 0) { goto err_features; @@ -850,6 +854,10 @@ static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) goto err_vq; } } + + if (!enable_log) { + vhost_log_put(dev, false); + } return 0; err_vq: for (; i >= 0; --i) { @@ -877,22 +885,8 @@ static int vhost_migration_log(MemoryListener *listener, return 0; } - r = 0; - if (!enable) { - r = device_cb(dev, false); - if (r < 0) { - goto check_dev_state; - } - vhost_log_put(dev, false); - } else { - vhost_dev_log_resize(dev, vhost_get_log_size(dev)); - r = device_cb(dev, true); - if (r < 0) { - goto check_dev_state; - } - } + r = device_cb(dev, enable); -check_dev_state: dev->log_enabled = enable; /* * vhost-user-* devices could change their state during log -- 2.18.4