On Thu, May 16, 2013 at 07:06:07PM +0200, fred.kon...@greensocs.com wrote:
From: KONRAD Frederic fred.kon...@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.kon...@greensocs.com
Reviewed-by: Paolo Bonzini pbonz...@redhat.com
Cc: mdroth mdr...@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 mdr...@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