@@ -103,17 +103,28 @@ static void virtio_rng_save(QEMUFile *f, void *opaque)
VirtIODevice *vdev = opaque;
virtio_save(vdev, f);
+ virtio_save_subsections(vdev, f);
}
static int virtio_rng_load(QEMUFile *f, void *opaque, int version_id)
{
VirtIORNG *vrng = opaque;
VirtIODevice *vdev = VIRTIO_DEVICE(vrng);
+ int ret;
if (version_id != 1) {
return -EINVAL;
}
- virtio_load(vdev, f);
+
+ ret = virtio_load(vdev, f);
+ if (ret) {
+ return ret;
+ }
+
+ ret = virtio_load_subsections(vdev, f);
+ if (ret) {
+ return ret;
+ }
/* We may have an element ready but couldn't process it due to a quota
* limit. Make sure to try again after live migration when the quota may
While we are here, we also check virtio_load() return value. Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> --- hw/virtio/virtio-rng.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)