Lines Matching defs:vcpu

24 void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
33 static u16 kvmppc_sid_hash(struct kvm_vcpu *vcpu, u64 gvsid)
46 static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid)
51 if (kvmppc_get_msr(vcpu) & MSR_PR)
54 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid);
55 map = &to_book3s(vcpu)->sid_map[sid_map_mask];
61 map = &to_book3s(vcpu)->sid_map[SID_MAP_MASK - sid_map_mask];
71 int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte,
87 struct kvm *kvm = vcpu->kvm;
97 pfn = kvmppc_gpa_to_pfn(vcpu, orig_pte->raddr, iswrite, &writable);
107 vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid);
108 map = find_sid_vsid(vcpu, vsid);
110 ret = kvmppc_mmu_map_segment(vcpu, orig_pte->eaddr);
112 map = find_sid_vsid(vcpu, vsid);
128 mark_page_dirty(vcpu->kvm, gfn);
151 cpte = kvmppc_mmu_hpte_cache_next(vcpu);
200 kvmppc_mmu_hpte_cache_map(vcpu, cpte);
214 void kvmppc_mmu_unmap_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte)
219 vcpu->arch.mmu.esid_to_vsid(vcpu, pte->eaddr >> SID_SHIFT, &vsid);
222 kvmppc_mmu_pte_vflush(vcpu, pte->vpage, mask);
225 static struct kvmppc_sid_map *create_sid_map(struct kvm_vcpu *vcpu, u64 gvsid)
229 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
233 if (kvmppc_get_msr(vcpu) & MSR_PR)
239 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid);
243 map = &to_book3s(vcpu)->sid_map[sid_map_mask];
253 kvmppc_mmu_pte_flush(vcpu, 0, 0);
254 kvmppc_mmu_flush_segments(vcpu);
271 static int kvmppc_mmu_next_segment(struct kvm_vcpu *vcpu, ulong esid)
273 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu);
302 kvmppc_mmu_flush_segments(vcpu);
312 int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr)
314 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu);
323 slb_index = kvmppc_mmu_next_segment(vcpu, eaddr & ESID_MASK);
325 if (vcpu->arch.mmu.esid_to_vsid(vcpu, esid, &gvsid)) {
332 map = find_sid_vsid(vcpu, gvsid);
334 map = create_sid_map(vcpu, gvsid);
358 void kvmppc_mmu_flush_segment(struct kvm_vcpu *vcpu, ulong ea, ulong seg_size)
360 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu);
375 void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu)
377 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu);
383 void kvmppc_mmu_destroy_pr(struct kvm_vcpu *vcpu)
385 kvmppc_mmu_hpte_destroy(vcpu);
386 __destroy_context(to_book3s(vcpu)->context_id[0]);
389 int kvmppc_mmu_init_pr(struct kvm_vcpu *vcpu)
391 struct kvmppc_vcpu_book3s *vcpu3s = to_book3s(vcpu);
404 kvmppc_mmu_hpte_init(vcpu);