repository: /home/dor/src/merge/kvm
branch: trunk
commit bf1e6da21722a4699ea3739e587f282b9a5db418
Author: Dor Laor <[EMAIL PROTECTED]>
Date:   Tue Mar 4 08:57:52 2008 -0500

    Use specific avail/used ring structures
    
    This is more accurate than using page_size,
    as suggested by Anthony Liguori.
    
    Signed-off-by: Dor Laor <[EMAIL PROTECTED]>

diff --git a/qemu/hw/virtio.c b/qemu/hw/virtio.c
index 1367af1..c1095fc 100644
--- a/qemu/hw/virtio.c
+++ b/qemu/hw/virtio.c
@@ -203,8 +203,8 @@ void virtio_dev_save(QEMUFile *f, VirtIODevice *vdev)
 
         /* Save the descriptor ring instead of constantly mark them dirty */
         qemu_put_buffer(f, (uint8_t*)vdev->vq[i].vring.desc, 
vdev->vq[i].vring.num * sizeof(VRingDesc));
-        qemu_put_buffer(f, (uint8_t*)vdev->vq[i].vring.avail, 
TARGET_PAGE_SIZE);
-        qemu_put_buffer(f, (uint8_t*)vdev->vq[i].vring.used, TARGET_PAGE_SIZE);
+        qemu_put_buffer(f, (uint8_t*)vdev->vq[i].vring.avail, 
vdev->vq[i].vring.num * 2 + sizeof(VRingAvail));
+        qemu_put_buffer(f, (uint8_t*)vdev->vq[i].vring.used, 
vdev->vq[i].vring.num * sizeof(VRingUsedElem) + sizeof(VRingUsed));
     }
 }
 
@@ -236,8 +236,8 @@ int virtio_dev_load(QEMUFile *f, VirtIODevice *vdev, int 
version_id)
          virtqueue_init(&vdev->vq[i], phys_ram_base +
                                       (vdev->vq[i].pfn << TARGET_PAGE_BITS));
          qemu_get_buffer(f, (uint8_t*)vdev->vq[i].vring.desc, 
vdev->vq[i].vring.num * sizeof(VRingDesc));
-         qemu_get_buffer(f, (uint8_t*)vdev->vq[i].vring.avail, 
TARGET_PAGE_SIZE);
-         qemu_get_buffer(f, (uint8_t*)vdev->vq[i].vring.used, 
TARGET_PAGE_SIZE);
+         qemu_get_buffer(f, (uint8_t*)vdev->vq[i].vring.avail, 
vdev->vq[i].vring.num * 2 + sizeof(VRingAvail));
+         qemu_get_buffer(f, (uint8_t*)vdev->vq[i].vring.used, 
vdev->vq[i].vring.num * sizeof(VRingUsedElem) + sizeof(VRingUsed));
     }
 
     return 0;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to