aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/booke.c
diff options
context:
space:
mode:
authorHollis Blanchard <hollisb@us.ibm.com>2009-01-03 17:23:02 -0500
committerAvi Kivity <avi@redhat.com>2009-03-24 05:02:56 -0400
commitbe8d1cae07d5acf4a61046d7def5eda40f0981e1 (patch)
tree32560487e3fd05bb6c64c394016e9461c70b2227 /arch/powerpc/kvm/booke.c
parent58a96214a306fc7fc66105097eea9c4f3bfa35bc (diff)
KVM: ppc: turn tlb_xlate() into a per-core hook (and give it a better name)
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/booke.c')
-rw-r--r--arch/powerpc/kvm/booke.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 85b9e2fc6c6b..56d6ed69ed60 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -286,8 +286,6 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
286 286
287 /* XXX move to a 440-specific file. */ 287 /* XXX move to a 440-specific file. */
288 case BOOKE_INTERRUPT_DTLB_MISS: { 288 case BOOKE_INTERRUPT_DTLB_MISS: {
289 struct kvmppc_vcpu_44x *vcpu_44x = to_44x(vcpu);
290 struct kvmppc_44x_tlbe *gtlbe;
291 unsigned long eaddr = vcpu->arch.fault_dear; 289 unsigned long eaddr = vcpu->arch.fault_dear;
292 int gtlb_index; 290 int gtlb_index;
293 gpa_t gpaddr; 291 gpa_t gpaddr;
@@ -305,8 +303,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
305 break; 303 break;
306 } 304 }
307 305
308 gtlbe = &vcpu_44x->guest_tlb[gtlb_index]; 306 gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
309 gpaddr = tlb_xlate(gtlbe, eaddr);
310 gfn = gpaddr >> PAGE_SHIFT; 307 gfn = gpaddr >> PAGE_SHIFT;
311 308
312 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { 309 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) {
@@ -332,8 +329,6 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
332 329
333 /* XXX move to a 440-specific file. */ 330 /* XXX move to a 440-specific file. */
334 case BOOKE_INTERRUPT_ITLB_MISS: { 331 case BOOKE_INTERRUPT_ITLB_MISS: {
335 struct kvmppc_vcpu_44x *vcpu_44x = to_44x(vcpu);
336 struct kvmppc_44x_tlbe *gtlbe;
337 unsigned long eaddr = vcpu->arch.pc; 332 unsigned long eaddr = vcpu->arch.pc;
338 gpa_t gpaddr; 333 gpa_t gpaddr;
339 gfn_t gfn; 334 gfn_t gfn;
@@ -352,8 +347,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
352 347
353 kvmppc_account_exit(vcpu, ITLB_VIRT_MISS_EXITS); 348 kvmppc_account_exit(vcpu, ITLB_VIRT_MISS_EXITS);
354 349
355 gtlbe = &vcpu_44x->guest_tlb[gtlb_index]; 350 gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
356 gpaddr = tlb_xlate(gtlbe, eaddr);
357 gfn = gpaddr >> PAGE_SHIFT; 351 gfn = gpaddr >> PAGE_SHIFT;
358 352
359 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) { 353 if (kvm_is_visible_gfn(vcpu->kvm, gfn)) {