virtio: migrate vdev->broken flag
Send a subsection if the vdev->broken flag is set. This allows live migration of broken virtio devices. The subsection is only sent if vdev->broken has been set. In most cases the flag will be clear and no subsection will be sent. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
f5ed36635d
commit
791b1daf72
@ -1343,6 +1343,13 @@ static bool virtio_extra_state_needed(void *opaque)
|
|||||||
k->has_extra_state(qbus->parent);
|
k->has_extra_state(qbus->parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool virtio_broken_needed(void *opaque)
|
||||||
|
{
|
||||||
|
VirtIODevice *vdev = opaque;
|
||||||
|
|
||||||
|
return vdev->broken;
|
||||||
|
}
|
||||||
|
|
||||||
static const VMStateDescription vmstate_virtqueue = {
|
static const VMStateDescription vmstate_virtqueue = {
|
||||||
.name = "virtqueue_state",
|
.name = "virtqueue_state",
|
||||||
.version_id = 1,
|
.version_id = 1,
|
||||||
@ -1457,6 +1464,17 @@ static const VMStateDescription vmstate_virtio_64bit_features = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const VMStateDescription vmstate_virtio_broken = {
|
||||||
|
.name = "virtio/broken",
|
||||||
|
.version_id = 1,
|
||||||
|
.minimum_version_id = 1,
|
||||||
|
.needed = &virtio_broken_needed,
|
||||||
|
.fields = (VMStateField[]) {
|
||||||
|
VMSTATE_BOOL(broken, VirtIODevice),
|
||||||
|
VMSTATE_END_OF_LIST()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static const VMStateDescription vmstate_virtio = {
|
static const VMStateDescription vmstate_virtio = {
|
||||||
.name = "virtio",
|
.name = "virtio",
|
||||||
.version_id = 1,
|
.version_id = 1,
|
||||||
@ -1470,6 +1488,7 @@ static const VMStateDescription vmstate_virtio = {
|
|||||||
&vmstate_virtio_64bit_features,
|
&vmstate_virtio_64bit_features,
|
||||||
&vmstate_virtio_virtqueues,
|
&vmstate_virtio_virtqueues,
|
||||||
&vmstate_virtio_ringsize,
|
&vmstate_virtio_ringsize,
|
||||||
|
&vmstate_virtio_broken,
|
||||||
&vmstate_virtio_extra_state,
|
&vmstate_virtio_extra_state,
|
||||||
NULL
|
NULL
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user