bacd9b0468
Rebase to qemu-1.7 GA New monitor command blockdev-add for full featured block device hotplug. Performance and functionality improvements for USB 3.0. Many VFIO improvements ACPI tables can be generated by QEMU and can be used by firmware directly. Support creating and writing .vhdx images. qemu-img map: dump detailed image file metadata
54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
From e8821c68009a5b801ffef6d7d9ed5d770c0bfd9f Mon Sep 17 00:00:00 2001
|
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
|
Date: Fri, 20 Sep 2013 16:57:54 +0200
|
|
Subject: [PATCH] virtio-blk: switch exit callback to VirtioDeviceClass
|
|
|
|
This ensures hot-unplug is handled properly by the proxy.
|
|
|
|
Cc: qemu-stable@nongnu.org
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
---
|
|
hw/block/virtio-blk.c | 10 ++++------
|
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
|
|
index 13f6d82..7f0440f 100644
|
|
--- a/hw/block/virtio-blk.c
|
|
+++ b/hw/block/virtio-blk.c
|
|
@@ -728,20 +728,18 @@ static int virtio_blk_device_init(VirtIODevice *vdev)
|
|
return 0;
|
|
}
|
|
|
|
-static int virtio_blk_device_exit(DeviceState *dev)
|
|
+static void virtio_blk_device_exit(VirtIODevice *vdev)
|
|
{
|
|
- VirtIODevice *vdev = VIRTIO_DEVICE(dev);
|
|
- VirtIOBlock *s = VIRTIO_BLK(dev);
|
|
+ VirtIOBlock *s = VIRTIO_BLK(vdev);
|
|
#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE
|
|
remove_migration_state_change_notifier(&s->migration_state_notifier);
|
|
virtio_blk_data_plane_destroy(s->dataplane);
|
|
s->dataplane = NULL;
|
|
#endif
|
|
qemu_del_vm_change_state_handler(s->change);
|
|
- unregister_savevm(dev, "virtio-blk", s);
|
|
+ unregister_savevm(DEVICE(vdev), "virtio-blk", s);
|
|
blockdev_mark_auto_del(s->bs);
|
|
virtio_cleanup(vdev);
|
|
- return 0;
|
|
}
|
|
|
|
static Property virtio_blk_properties[] = {
|
|
@@ -753,10 +751,10 @@ static void virtio_blk_class_init(ObjectClass *klass, void *data)
|
|
{
|
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
|
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
|
|
- dc->exit = virtio_blk_device_exit;
|
|
dc->props = virtio_blk_properties;
|
|
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
|
vdc->init = virtio_blk_device_init;
|
|
+ vdc->exit = virtio_blk_device_exit;
|
|
vdc->get_config = virtio_blk_update_config;
|
|
vdc->set_config = virtio_blk_set_config;
|
|
vdc->get_features = virtio_blk_get_features;
|