]> xenbits.xensource.com Git - qemu-xen-4.0-testing.git/commitdiff
cirrus_vga fix save/restore endian incompatibility
authorIan Jackson <ian.jackson@eu.citrix.com>
Thu, 27 Nov 2008 11:31:06 +0000 (11:31 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 27 Nov 2008 12:02:13 +0000 (12:02 +0000)
This patch fixes the cirrus_vga save/restore functions to keep
compatibility with older ioemu statefiles.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
(cherry picked from commit 97e3066c43477c79b56f4afeb08c330fc2c244b7)

Conflicts:
        hw/cirrus_vga.c

hw/cirrus_vga.c

index fb437769f3a578565d922b4d82cae198f83d75af..eae8f2df3cf1c819bc3303693fce9f53e56c0038 100644 (file)
@@ -3245,8 +3245,12 @@ static void cirrus_vga_save(QEMUFile *f, void *opaque)
 
     vga_acc = (!!s->map_addr);
     qemu_put_8s(f, &vga_acc);
-    qemu_put_be64s(f, (uint64_t*)&s->lfb_addr);
-    qemu_put_be64s(f, (uint64_t*)&s->lfb_end);
+    /* XXX old versions saved rubbish here, keeping for compatibility */
+    qemu_put_be32(f, 0xffffffff);
+    qemu_put_be32(f, s->lfb_addr);
+    /* XXX old versions saved rubbish here, keeping for compatibility */
+    qemu_put_be32(f, 0xffffffff);
+    qemu_put_be32(f, s->lfb_end);
     qemu_put_buffer(f, s->vram_ptr, VGA_RAM_SIZE);
 }
 
@@ -3300,8 +3304,12 @@ static int cirrus_vga_load(QEMUFile *f, void *opaque, int version_id)
     qemu_get_be32s(f, &s->hw_cursor_y);
 
     qemu_get_8s(f, &vga_acc);
-    qemu_get_be64s(f, (uint64_t*)&s->lfb_addr);
-    qemu_get_be64s(f, (uint64_t*)&s->lfb_end);
+    /* XXX throwing away 32 bits */
+    qemu_get_be32(f);
+    qemu_get_be32s(f, &s->lfb_addr);
+    /* XXX throwing away 32 bits */
+    qemu_get_be32(f);
+    qemu_get_be32s(f, &s->lfb_end);
     qemu_get_buffer(f, s->vram_ptr, VGA_RAM_SIZE);
     if (vga_acc){
         cirrus_restart_acc(s);