Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > aadbe78a25743146bb784eee19f007c5 > files > 562

kvm-83-164.el5_5.9.src.rpm

From e9ed9145f2c3acf2937c105fcd24f2b5e7f9a30e Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Tue, 22 Dec 2009 17:36:35 -0200
Subject: [PATCH 2/3] qxl: fix qxl backwards migration to version 3

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <cc11814c90a6edfe249d972bcf8e207cb179e462.1261503221.git.quintela@redhat.com>
Patchwork-id: 5904
O-Subject: [PATCH 2/2] qxl: fix qxl backwards migration to version 3
Bugzilla: 537888
RH-Acked-by: Izik Eidus <ieidus@redhat.com>
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
RH-Acked-by: Markus Armbruster <armbru@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/hw/pc.c  |    1 +
 qemu/hw/qxl.c |    7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/hw/pc.c  |    1 +
 qemu/hw/qxl.c |    7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index 53d8dd2..8d654e8 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -1289,6 +1289,7 @@ QEMUMachine rhel540_machine = {
 		{ .name = "kvmclock", .version_id =  SAVEVM_DISABLED},
 		{ .name = "ide", .version_id =  3},
 		{ .name = "virtio-blk", .version_id =  2},
+		{ .name = "qxl", .version_id =  3},
 		{ /* Empty */ }
     },
 };
diff --git a/qemu/hw/qxl.c b/qemu/hw/qxl.c
index 1ed6968..224b973 100644
--- a/qemu/hw/qxl.c
+++ b/qemu/hw/qxl.c
@@ -1312,7 +1312,9 @@ static void qxl_save(QEMUFile* f, void* opaque, int version_id)
     pci_device_save(&d->pci_dev, f);
 
     qemu_put_be32(f, s->rom->mode);
-    qemu_put_be32(f, s->shadow_rom.mode);
+    if (version_id >= 4) {
+	    qemu_put_be32(f, s->shadow_rom.mode);
+    }
     qemu_put_be32(f, s->num_free_res);
 
     if (s->last_release == NULL)
@@ -1908,6 +1910,7 @@ void qxl_init(PCIBus *bus, uint8_t *vram, unsigned long vram_offset,
     uint32_t max_fb;
     uint32_t qxl_ram_size = msb_mask(in_ram_size*2 - 1);
     uint32_t vdi_port_ram_size = msb_mask(sizeof(VDIPortRam) * 2 - 1);
+    int version_id = machine_device_version(QXL_DEV_NAME, QXL_SAVE_VERSION);
 
     static int device_id = 0;
     
@@ -1927,7 +1930,7 @@ void qxl_init(PCIBus *bus, uint8_t *vram, unsigned long vram_offset,
         qxl_init_modes();
     }
 
-    register_savevm(QXL_DEV_NAME, device_id, QXL_SAVE_VERSION, qxl_save, qxl_load, d);
+    register_savevm(QXL_DEV_NAME, device_id, version_id, qxl_save, qxl_load, d);
     qemu_add_vm_change_state_handler(qxl_vm_change_state_handler, d);
 
     pci_conf = (PCIConf *)d->pci_dev.config;
-- 
1.6.3.rc4.29.g8146