]> git.ipfire.org Git - thirdparty/qemu.git/commit
target-ppc: Fix CPU migration from qemu-2.6 <-> later versions
authorDavid Gibson <david@gibson.dropbear.id.au>
Mon, 21 Nov 2016 05:28:12 +0000 (16:28 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 23 Nov 2016 01:00:48 +0000 (12:00 +1100)
commit16a2497bd44cac1856e259654fd304079bd1dcdc
tree398ba68401a3398b67853e2bf37f6b808241ad4c
parent39d97e14a151519c81955a0b82352b5596432f63
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>
target-ppc/cpu.h
target-ppc/machine.c