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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Stefan Hajnoczi
						Stefan Hajnoczi