mirror of
https://github.com/qemu/qemu.git
synced 2025-08-15 05:06:56 +00:00
vhost-scsi: Add VMState descriptor
As preparation of enabling migration of vhost-scsi device, define it’s VMState. Note, we keep the convention of verifying in the pre_save() method that the vhost backend must be stopped before attempting to save the device state. Similar to how it is done for vhost-vsock. Reviewed-by: Bijan Mottahedeh <bijan.mottahedeh@oracle.com> Reviewed-by: Liran Alon <liran.alon@oracle.com> Signed-off-by: Nir Weiner <nir.weiner@oracle.com> Message-Id: <20190416125912.44001-3-liran.alon@oracle.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
c6d369fd78
commit
4ea5742558
@ -139,6 +139,28 @@ static void vhost_dummy_handle_output(VirtIODevice *vdev, VirtQueue *vq)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int vhost_scsi_pre_save(void *opaque)
|
||||||
|
{
|
||||||
|
VHostSCSICommon *vsc = opaque;
|
||||||
|
|
||||||
|
/* At this point, backend must be stopped, otherwise
|
||||||
|
* it might keep writing to memory. */
|
||||||
|
assert(!vsc->dev.started);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const VMStateDescription vmstate_virtio_vhost_scsi = {
|
||||||
|
.name = "virtio-vhost_scsi",
|
||||||
|
.minimum_version_id = 1,
|
||||||
|
.version_id = 1,
|
||||||
|
.fields = (VMStateField[]) {
|
||||||
|
VMSTATE_VIRTIO_DEVICE,
|
||||||
|
VMSTATE_END_OF_LIST()
|
||||||
|
},
|
||||||
|
.pre_save = vhost_scsi_pre_save,
|
||||||
|
};
|
||||||
|
|
||||||
static void vhost_scsi_realize(DeviceState *dev, Error **errp)
|
static void vhost_scsi_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(dev);
|
VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(dev);
|
||||||
@ -256,6 +278,7 @@ static void vhost_scsi_class_init(ObjectClass *klass, void *data)
|
|||||||
FWPathProviderClass *fwc = FW_PATH_PROVIDER_CLASS(klass);
|
FWPathProviderClass *fwc = FW_PATH_PROVIDER_CLASS(klass);
|
||||||
|
|
||||||
dc->props = vhost_scsi_properties;
|
dc->props = vhost_scsi_properties;
|
||||||
|
dc->vmsd = &vmstate_virtio_vhost_scsi;
|
||||||
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
||||||
vdc->realize = vhost_scsi_realize;
|
vdc->realize = vhost_scsi_realize;
|
||||||
vdc->unrealize = vhost_scsi_unrealize;
|
vdc->unrealize = vhost_scsi_unrealize;
|
||||||
|
Loading…
Reference in New Issue
Block a user