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);
|
||||
}
|
||||
|
||||
static bool virtio_broken_needed(void *opaque)
|
||||
{
|
||||
VirtIODevice *vdev = opaque;
|
||||
|
||||
return vdev->broken;
|
||||
}
|
||||
|
||||
static const VMStateDescription vmstate_virtqueue = {
|
||||
.name = "virtqueue_state",
|
||||
.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 = {
|
||||
.name = "virtio",
|
||||
.version_id = 1,
|
||||
@ -1470,6 +1488,7 @@ static const VMStateDescription vmstate_virtio = {
|
||||
&vmstate_virtio_64bit_features,
|
||||
&vmstate_virtio_virtqueues,
|
||||
&vmstate_virtio_ringsize,
|
||||
&vmstate_virtio_broken,
|
||||
&vmstate_virtio_extra_state,
|
||||
NULL
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user