target-ppc: Update external_htab even when HTAB is managed by kernel
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tue, 28 Jan 2014 07:59:59 +0000 (13:29 +0530)
committerAlexander Graf <agraf@suse.de>
Wed, 5 Mar 2014 02:06:47 +0000 (03:06 +0100)
We will use this in later patches to make sure we use the right load
functions when copying hpte entries.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/spapr.c

index c9dfc6c..0989ed6 100644 (file)
@@ -741,6 +741,13 @@ static void spapr_cpu_reset(void *opaque)
     env->spr[SPR_HIOR] = 0;
 
     env->external_htab = (uint8_t *)spapr->htab;
+    if (kvm_enabled() && !env->external_htab) {
+        /*
+         * HV KVM, set external_htab to 1 so our ppc_hash64_load_hpte*
+         * functions do the right thing.
+         */
+        env->external_htab = (void *)1;
+    }
     env->htab_base = -1;
     env->htab_mask = HTAB_SIZE(spapr) - 1;
     env->spr[SPR_SDR1] = (target_ulong)(uintptr_t)spapr->htab |