Signed-off-by: Greg Kurz <gk...@linux.vnet.ibm.com> --- hw/char/virtio-serial-bus.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index 2b647b6..98f32fd 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -522,12 +522,13 @@ static void vser_reset(VirtIODevice *vdev) static void virtio_serial_save(QEMUFile *f, void *opaque) { VirtIOSerial *s = VIRTIO_SERIAL(opaque); + VirtIODevice *vdev = VIRTIO_DEVICE(s); VirtIOSerialPort *port; uint32_t nr_active_ports; unsigned int i, max_nr_ports; /* The virtio device */ - virtio_save(VIRTIO_DEVICE(s), f); + virtio_save(vdev, f); /* The config space */ qemu_put_be16s(f, &s->config.cols); @@ -573,6 +574,8 @@ static void virtio_serial_save(QEMUFile *f, void *opaque) sizeof(port->elem)); } } + + virtio_save_subsections(vdev, f); } static void virtio_serial_post_load_timer_cb(void *opaque) @@ -667,6 +670,7 @@ static int fetch_active_ports_list(QEMUFile *f, int version_id, static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) { VirtIOSerial *s = VIRTIO_SERIAL(opaque); + VirtIODevice *vdev = VIRTIO_DEVICE(s); uint32_t max_nr_ports, nr_active_ports, ports_map; unsigned int i; int ret; @@ -676,7 +680,7 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) } /* The virtio device */ - ret = virtio_load(VIRTIO_DEVICE(s), f); + ret = virtio_load(vdev, f); if (ret) { return ret; } @@ -716,7 +720,7 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) return ret; } } - return 0; + return virtio_load_subsections(vdev, f); } static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent);