mirror_qemu/target-ppc
David Gibson 9df69dcd14 target-ppc: Fix CPU migration from qemu-2.6 <-> later versions
When migration for target-ppc was converted to vmstate, several
VMSTATE_EQUAL() checks were foolishly included of things that really
should be internal state.  Specifically we verified equality of the
insns_flags and insns_flags2 fields, which are used within TCG to
determine which groups of instructions are available on this cpu
model.  Between qemu-2.6 and qemu-2.7 we made some changes to these
classes which broke migration.

This path fixes migration both forwards and backwards.  On migration
from 2.6 to later versions we import the fields into teporary
variables, which we then ignore.  In migration backwards, we populate
the temporary fields from the runtime fields, but mask out the bits
which were added after qemu-2.6, allowing the VMSTATE_EQUAL in
qemu-2.6 to accept the stream.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
(cherry picked from commit 16a2497bd4)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2016-12-02 09:38:26 -06:00
..
Makefile.objs kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
STATUS target-ppc: remove powerpc 970gx 2014-03-05 03:06:23 +01:00
arch_dump.c ppc64: fix compressed dump with pseries kernel 2016-08-10 13:05:05 +10:00
cpu-models.c target-ppc: Add PVR for POWER8NVL processor 2016-03-16 09:55:05 +11:00
cpu-models.h target-ppc: Add PVR for POWER8NVL processor 2016-03-16 09:55:05 +11:00
cpu-qom.h ppc: Fix 64K pages support in full emulation 2016-07-01 09:57:01 +10:00
cpu.h target-ppc: Fix CPU migration from qemu-2.6 <-> later versions 2016-12-02 09:38:26 -06:00
dfp_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
excp_helper.c ppc: Initial HDEC support 2016-07-01 09:57:01 +10:00
fpu_helper.c ppc: Fix xsrdpi, xvrdpi and xvrspi rounding 2016-07-05 10:43:02 +10:00
gdbstub.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
helper.h ppc: Initial HDEC support 2016-07-01 09:57:01 +10:00
helper_regs.h ppc: Fix support for odd MSR combinations 2016-07-18 10:40:27 +10:00
int_helper.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
kvm-stub.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
kvm.c ppc/kvm: Mark 64kB page size support as disabled if not available 2016-11-02 18:19:00 -05:00
kvm_ppc.h ppc: Check the availability of transactional memory 2016-10-13 12:58:06 +11:00
machine.c target-ppc: Fix CPU migration from qemu-2.6 <-> later versions 2016-12-02 09:38:26 -06:00
mem_helper.c ppc: Fix fault PC reporting for lve*/stve* VMX instructions 2016-07-29 12:02:31 +10:00
mfrom_table.c
mfrom_table_gen.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
misc_helper.c ppc: Improve emulation of THRM registers 2016-06-22 11:12:17 +10:00
mmu-hash32.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
mmu-hash32.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
mmu-hash64.c target-ppc: fix left shift overflow in hpte_page_shift 2016-07-18 10:45:44 +10:00
mmu-hash64.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
mmu_helper.c Fix confusing argument names in some common functions 2016-07-12 13:06:08 +01:00
monitor.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
timebase_helper.c ppc: Initial HDEC support 2016-07-01 09:57:01 +10:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
translate.c target-ppc: gen_pause for instructions: yield, mdoio, mdoom, miso 2016-07-01 13:41:47 +10:00
translate_init.c ppc: Introduce a function to look up CPU alias strings 2016-08-10 13:12:20 +10:00
user_only_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00