ppc: Fix migration of the TAR SPR
authorThomas Huth <thuth@redhat.com>
Wed, 2 Mar 2016 20:19:21 +0000 (21:19 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 15 Mar 2016 22:55:05 +0000 (09:55 +1100)
The TAR special purpose register currently does not get migrated
under KVM because it does not get synchronized with the kernel.
Use spr_register_kvm() instead of spr_register() to fix this issue.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target-ppc/translate_init.c

index f72148cc22fd3d771dcbee4764011c7b6d7d0a05..48a163511c4582b33db7309df38422a83051527e 100644 (file)
@@ -7714,10 +7714,10 @@ static void spr_write_tar(DisasContext *ctx, int sprn, int gprn)
 
 static void gen_spr_power8_tce_address_control(CPUPPCState *env)
 {
-    spr_register(env, SPR_TAR, "TAR",
-                 &spr_read_tar, &spr_write_tar,
-                 &spr_read_generic, &spr_write_generic,
-                 0x00000000);
+    spr_register_kvm(env, SPR_TAR, "TAR",
+                     &spr_read_tar, &spr_write_tar,
+                     &spr_read_generic, &spr_write_generic,
+                     KVM_REG_PPC_TAR, 0x00000000);
 }
 
 static void spr_read_tm(DisasContext *ctx, int gprn, int sprn)