diff options
Diffstat (limited to 'hw/virtio')
-rw-r--r-- | hw/virtio/vhost-vsock.c | 4 | ||||
-rw-r--r-- | hw/virtio/virtio.c | 13 |
2 files changed, 10 insertions, 7 deletions
diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c index 49e0022533..5ec1c6a2a2 100644 --- a/hw/virtio/vhost-vsock.c +++ b/hw/virtio/vhost-vsock.c @@ -254,13 +254,15 @@ static void vhost_vsock_post_load_timer_cb(void *opaque) vhost_vsock_send_transport_reset(vsock); } -static void vhost_vsock_pre_save(void *opaque) +static int vhost_vsock_pre_save(void *opaque) { VHostVSock *vsock = opaque; /* At this point, backend must be stopped, otherwise * it might keep writing to memory. */ assert(!vsock->vhost_dev.started); + + return 0; } static int vhost_vsock_post_load(void *opaque, int version_id) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 3129d25c00..311929e9df 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1897,7 +1897,7 @@ static const VMStateDescription vmstate_virtio = { } }; -void virtio_save(VirtIODevice *vdev, QEMUFile *f) +int virtio_save(VirtIODevice *vdev, QEMUFile *f) { BusState *qbus = qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus); @@ -1947,20 +1947,21 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f) } if (vdc->vmsd) { - vmstate_save_state(f, vdc->vmsd, vdev, NULL); + int ret = vmstate_save_state(f, vdc->vmsd, vdev, NULL); + if (ret) { + return ret; + } } /* Subsections */ - vmstate_save_state(f, &vmstate_virtio, vdev, NULL); + return vmstate_save_state(f, &vmstate_virtio, vdev, NULL); } /* A wrapper for use as a VMState .put function */ static int virtio_device_put(QEMUFile *f, void *opaque, size_t size, VMStateField *field, QJSON *vmdesc) { - virtio_save(VIRTIO_DEVICE(opaque), f); - - return 0; + return virtio_save(VIRTIO_DEVICE(opaque), f); } /* A wrapper for use as a VMState .get function */ |