diff --git a/hw/iommu.c b/hw/iommu.c index 082451f986..77d8b817e6 100644 --- a/hw/iommu.c +++ b/hw/iommu.c @@ -259,7 +259,7 @@ static int iommu_load(QEMUFile *f, void *opaque, int version_id) return -EINVAL; for (i = 0; i < IOMMU_NREGS; i++) - qemu_put_be32s(f, &s->regs[i]); + qemu_get_be32s(f, &s->regs[i]); qemu_get_be64s(f, &s->iostart); return 0; diff --git a/hw/tcx.c b/hw/tcx.c index 10ae987fc2..c334f09234 100644 --- a/hw/tcx.c +++ b/hw/tcx.c @@ -354,9 +354,6 @@ static void tcx_save(QEMUFile *f, void *opaque) { TCXState *s = opaque; - qemu_put_be32s(f, (uint32_t *)&s->vram); - qemu_put_be32s(f, (uint32_t *)&s->vram24); - qemu_put_be32s(f, (uint32_t *)&s->cplane); qemu_put_be16s(f, (uint16_t *)&s->height); qemu_put_be16s(f, (uint16_t *)&s->width); qemu_put_be16s(f, (uint16_t *)&s->depth); @@ -370,13 +367,16 @@ static void tcx_save(QEMUFile *f, void *opaque) static int tcx_load(QEMUFile *f, void *opaque, int version_id) { TCXState *s = opaque; - - if (version_id != 3) + uint32_t dummy; + + if (version_id != 3 && version_id != 4) return -EINVAL; - qemu_get_be32s(f, (uint32_t *)&s->vram); - qemu_get_be32s(f, (uint32_t *)&s->vram24); - qemu_get_be32s(f, (uint32_t *)&s->cplane); + if (version_id == 3) { + qemu_get_be32s(f, (uint32_t *)&dummy); + qemu_get_be32s(f, (uint32_t *)&dummy); + qemu_get_be32s(f, (uint32_t *)&dummy); + } qemu_get_be16s(f, (uint16_t *)&s->height); qemu_get_be16s(f, (uint16_t *)&s->width); qemu_get_be16s(f, (uint16_t *)&s->depth); @@ -546,7 +546,7 @@ void tcx_init(DisplayState *ds, target_phys_addr_t addr, uint8_t *vram_base, cpu_register_physical_memory(addr + 0x00301000ULL, TCX_THC_NREGS_24, dummy_memory); - register_savevm("tcx", addr, 3, tcx_save, tcx_load, s); + register_savevm("tcx", addr, 4, tcx_save, tcx_load, s); qemu_register_reset(tcx_reset, s); tcx_reset(s); dpy_resize(s->ds, width, height);