bhyve: Only snapshot initialized VirtIO queues

If the virtio device is not fully initialized, then suspend fails with:

  vi_pci_snapshot_queues: invalid address: vq->vq_desc
  Failed to snapshot virtio-rnd; ret=14

MFC after:	1 week
Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D26268
This commit is contained in:
Vitaliy Gusev 2021-12-16 11:06:08 -05:00 committed by Mark Johnston
parent 9f5432d5e5
commit d079fc197a

View File

@ -901,6 +901,9 @@ vi_pci_snapshot_queues(struct virtio_softc *vs, struct vm_snapshot_meta *meta)
SNAPSHOT_VAR_OR_LEAVE(vq->vq_pfn, meta, ret, done);
if (!vq_ring_ready(vq))
continue;
addr_size = vq->vq_qsize * sizeof(struct vring_desc);
SNAPSHOT_GUEST2HOST_ADDR_OR_LEAVE(vq->vq_desc, addr_size,
false, meta, ret, done);