]> git.proxmox.com Git - mirror_qemu.git/commitdiff
virtio-scsi: prepare migration format for multiqueue
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 6 Apr 2012 08:20:43 +0000 (10:20 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 19 Apr 2012 08:31:05 +0000 (10:31 +0200)
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 <pbonzini@redhat.com>
hw/virtio-scsi.c

index 45d54faeb5e2dca358a782a21c7b6b16bef2f1af..0d90d9c159f5905b0aba823587d141ad48b8b59f 100644 (file)
@@ -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);