From: Paolo Bonzini Date: Fri, 6 Apr 2012 08:20:43 +0000 (+0200) Subject: virtio-scsi: prepare migration format for multiqueue X-Git-Tag: v1.1-rc0~87^2~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fcf104a74cb8d6d39dc935ab692afface3beab30;p=thirdparty%2Fqemu.git virtio-scsi: prepare migration format for multiqueue In order to restore requests correctly from a multitude of virtqueues, we need to store the id of the request queue that each request came from. Do this even for single-queue, by storing a hard-coded zero, to simplify future implementation of multiqueue. Signed-off-by: Paolo Bonzini --- diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c index 45d54faeb5e..0d90d9c159f 100644 --- a/hw/virtio-scsi.c +++ b/hw/virtio-scsi.c @@ -240,7 +240,9 @@ static VirtIOSCSIReq *virtio_scsi_pop_req(VirtIOSCSI *s, VirtQueue *vq) static void virtio_scsi_save_request(QEMUFile *f, SCSIRequest *sreq) { VirtIOSCSIReq *req = sreq->hba_private; + uint32_t n = 0; + qemu_put_be32s(f, &n); qemu_put_buffer(f, (unsigned char *)&req->elem, sizeof(req->elem)); } @@ -249,8 +251,11 @@ static void *virtio_scsi_load_request(QEMUFile *f, SCSIRequest *sreq) SCSIBus *bus = sreq->bus; VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus); VirtIOSCSIReq *req; + uint32_t n; req = g_malloc(sizeof(*req)); + qemu_get_be32s(f, &n); + assert(n == 0); qemu_get_buffer(f, (unsigned char *)&req->elem, sizeof(req->elem)); virtio_scsi_parse_req(s, s->cmd_vq, req);