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