On Sat, 19 Sep 2015 15:34:02 +0530 "Aneesh Kumar K.V" <aneesh.ku...@linux.vnet.ibm.com> wrote:
> Greg Kurz <gk...@linux.vnet.ibm.com> writes: > > > In a cross-endian setup, the virtio-9p device has state in @device_endian. > > It > > must be migrated. > > > > Signed-off-by: Greg Kurz <gk...@linux.vnet.ibm.com> > > With 9p mounted, we don't support qemu migration. We have > migration blocker added in v9fs_attach. > Ok I should have been more precise... If you unmount the 9p share, then migrate, then try to remount, you end up with a hung mount command because @device_endian has the wrong value... > > --- > > hw/9pfs/virtio-9p-device.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c > > index 93a407c45926..e3abcfaffb2a 100644 > > --- a/hw/9pfs/virtio-9p-device.c > > +++ b/hw/9pfs/virtio-9p-device.c > > @@ -43,6 +43,16 @@ static void virtio_9p_get_config(VirtIODevice *vdev, > > uint8_t *config) > > g_free(cfg); > > } > > > > +static void virtio_9p_save(QEMUFile *f, void *opaque) > > +{ > > + virtio_save(VIRTIO_DEVICE(opaque), f); > > +} > > + > > +static int virtio_9p_load(QEMUFile *f, void *opaque, int version_id) > > +{ > > + return virtio_load(VIRTIO_DEVICE(opaque), f, version_id); > > +} > > + > > static void virtio_9p_device_realize(DeviceState *dev, Error **errp) > > { > > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > > @@ -130,6 +140,7 @@ static void virtio_9p_device_realize(DeviceState *dev, > > Error **errp) > > } > > v9fs_path_free(&path); > > > > + register_savevm(dev, "virtio-9p", -1, 1, virtio_9p_save, > > virtio_9p_load, s); > > return; > > out: > > g_free(s->ctx.fs_root);