From: Benjamin Herrenschmidt <b...@kernel.crashing.org>

The Hypervisor can write it. We don't handle that properly yet but
at least let's not blow up when it is written.

Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
---
 target-ppc/translate_init.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 2fac6ea58698..28a9c2e73156 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -300,6 +300,12 @@ static void spr_write_purr(DisasContext *ctx, int gprn, 
int sprn)
     /* Temporary placeholder */
 }
 
+__attribute__ ((unused))
+static void spr_write_vtb(DisasContext *ctx, int gprn, int sprn)
+{
+    /* Temporary placeholder */
+}
+
 #endif
 #endif
 
@@ -8089,10 +8095,11 @@ static void gen_spr_power8_ebb(CPUPPCState *env)
 /* Virtual Time Base */
 static void gen_spr_vtb(CPUPPCState *env)
 {
-    spr_register(env, SPR_VTB, "VTB",
-                 SPR_NOACCESS, SPR_NOACCESS,
-                 &spr_read_tbl, SPR_NOACCESS,
-                 0x00000000);
+    spr_register_hv(env, SPR_VTB, "VTB",
+                   SPR_NOACCESS, SPR_NOACCESS,
+                   &spr_read_tbl, SPR_NOACCESS,
+                   &spr_read_tbl, spr_write_vtb,
+                   0x00000000);
 }
 
 static void gen_spr_power8_fscr(CPUPPCState *env)
-- 
2.1.4


Reply via email to