Message ID | 1368723967-21050-1-git-send-email-fred.konrad@greensocs.com |
---|---|
State | New |
Headers | show |
On Thu, May 16, 2013 at 07:06:07PM +0200, fred.konrad@greensocs.com wrote: > From: KONRAD Frederic <fred.konrad@greensocs.com> > > This adds virtio_bus_get_dev_path to fix migration id string which is wrong > since the virtio refactoring. > > Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> > Cc: mdroth <mdroth@linux.vnet.ibm.com> Re-tested the failure scenario with this patch applied and this does seem to resolve the issue. For reference, the configuration was v1.4.0 <-> 1.5.0-rc2+fix using the following options: x86_64-softmmu/qemu-system-x86_64 -enable-kvm -L temp-bios -M pc-i440fx-1.4 -m 512M -kernel boot/vmlinuz-x86_64 -initrd boot/test-initramfs-x86_64.img.gz -vga std -append seed=1234 -drive file=disk1.img,if=virtio -drive file=disk2.img,if=virtio -device virtio-net-pci,netdev=net0 -netdev user,id=net0 Tested-by: Michael Roth <mdroth@linux.vnet.ibm.com> > --- > hw/virtio/virtio-bus.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c > index aab72ff..ea2e11a 100644 > --- a/hw/virtio/virtio-bus.c > +++ b/hw/virtio/virtio-bus.c > @@ -154,12 +154,26 @@ void virtio_bus_set_vdev_config(VirtioBusState *bus, uint8_t *config) > } > } > > +static char *virtio_bus_get_dev_path(DeviceState *dev) > +{ > + BusState *bus = qdev_get_parent_bus(dev); > + DeviceState *proxy = DEVICE(bus->parent); > + return qdev_get_dev_path(proxy); > +} > + > +static void virtio_bus_class_init(ObjectClass *klass, void *data) > +{ > + BusClass *bus_class = BUS_CLASS(klass); > + bus_class->get_dev_path = virtio_bus_get_dev_path; > +} > + > static const TypeInfo virtio_bus_info = { > .name = TYPE_VIRTIO_BUS, > .parent = TYPE_BUS, > .instance_size = sizeof(VirtioBusState), > .abstract = true, > .class_size = sizeof(VirtioBusClass), > + .class_init = virtio_bus_class_init > }; > > static void virtio_register_types(void) > -- > 1.7.11.7 >
Applied. Thanks. Regards, Anthony Liguori
diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c index aab72ff..ea2e11a 100644 --- a/hw/virtio/virtio-bus.c +++ b/hw/virtio/virtio-bus.c @@ -154,12 +154,26 @@ void virtio_bus_set_vdev_config(VirtioBusState *bus, uint8_t *config) } } +static char *virtio_bus_get_dev_path(DeviceState *dev) +{ + BusState *bus = qdev_get_parent_bus(dev); + DeviceState *proxy = DEVICE(bus->parent); + return qdev_get_dev_path(proxy); +} + +static void virtio_bus_class_init(ObjectClass *klass, void *data) +{ + BusClass *bus_class = BUS_CLASS(klass); + bus_class->get_dev_path = virtio_bus_get_dev_path; +} + static const TypeInfo virtio_bus_info = { .name = TYPE_VIRTIO_BUS, .parent = TYPE_BUS, .instance_size = sizeof(VirtioBusState), .abstract = true, .class_size = sizeof(VirtioBusClass), + .class_init = virtio_bus_class_init }; static void virtio_register_types(void)