diff options
Diffstat (limited to 'arch/powerpc/kvm/e500mc.c')
-rw-r--r-- | arch/powerpc/kvm/e500mc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/kvm/e500mc.c b/arch/powerpc/kvm/e500mc.c index fe6c1de6b701..1f89d26e65fb 100644 --- a/arch/powerpc/kvm/e500mc.c +++ b/arch/powerpc/kvm/e500mc.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All rights reserved. | 2 | * Copyright (C) 2010,2012 Freescale Semiconductor, Inc. All rights reserved. |
3 | * | 3 | * |
4 | * Author: Varun Sethi, <varun.sethi@freescale.com> | 4 | * Author: Varun Sethi, <varun.sethi@freescale.com> |
5 | * | 5 | * |
@@ -57,7 +57,8 @@ void kvmppc_e500_tlbil_one(struct kvmppc_vcpu_e500 *vcpu_e500, | |||
57 | struct kvm_book3e_206_tlb_entry *gtlbe) | 57 | struct kvm_book3e_206_tlb_entry *gtlbe) |
58 | { | 58 | { |
59 | unsigned int tid, ts; | 59 | unsigned int tid, ts; |
60 | u32 val, eaddr, lpid; | 60 | gva_t eaddr; |
61 | u32 val, lpid; | ||
61 | unsigned long flags; | 62 | unsigned long flags; |
62 | 63 | ||
63 | ts = get_tlb_ts(gtlbe); | 64 | ts = get_tlb_ts(gtlbe); |
@@ -183,6 +184,9 @@ int kvmppc_core_vcpu_setup(struct kvm_vcpu *vcpu) | |||
183 | 184 | ||
184 | vcpu->arch.shadow_epcr = SPRN_EPCR_DSIGS | SPRN_EPCR_DGTMI | \ | 185 | vcpu->arch.shadow_epcr = SPRN_EPCR_DSIGS | SPRN_EPCR_DGTMI | \ |
185 | SPRN_EPCR_DUVD; | 186 | SPRN_EPCR_DUVD; |
187 | #ifdef CONFIG_64BIT | ||
188 | vcpu->arch.shadow_epcr |= SPRN_EPCR_ICM; | ||
189 | #endif | ||
186 | vcpu->arch.shadow_msrp = MSRP_UCLEP | MSRP_DEP | MSRP_PMMP; | 190 | vcpu->arch.shadow_msrp = MSRP_UCLEP | MSRP_DEP | MSRP_PMMP; |
187 | vcpu->arch.eplc = EPC_EGS | (vcpu->kvm->arch.lpid << EPC_ELPID_SHIFT); | 191 | vcpu->arch.eplc = EPC_EGS | (vcpu->kvm->arch.lpid << EPC_ELPID_SHIFT); |
188 | vcpu->arch.epsc = vcpu->arch.eplc; | 192 | vcpu->arch.epsc = vcpu->arch.eplc; |