Lines Matching refs:vcpu

60 void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)  in kvmppc_mmu_invalidate_pte()  argument
77 static u16 kvmppc_sid_hash(struct kvm_vcpu *vcpu, u64 gvsid) in kvmppc_sid_hash() argument
90 static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid) in find_sid_vsid() argument
95 if (kvmppc_get_msr(vcpu) & MSR_PR) in find_sid_vsid()
98 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid); in find_sid_vsid()
99 map = &to_book3s(vcpu)->sid_map[sid_map_mask]; in find_sid_vsid()
106 map = &to_book3s(vcpu)->sid_map[SID_MAP_MASK - sid_map_mask]; in find_sid_vsid()
117 static u32 *kvmppc_mmu_get_pteg(struct kvm_vcpu *vcpu, u32 vsid, u32 eaddr, in kvmppc_mmu_get_pteg() argument
141 int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte, in kvmppc_mmu_map_page() argument
159 hpaddr = kvmppc_gpa_to_pfn(vcpu, orig_pte->raddr, iswrite, &writable); in kvmppc_mmu_map_page()
169 vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid); in kvmppc_mmu_map_page()
170 map = find_sid_vsid(vcpu, vsid); in kvmppc_mmu_map_page()
172 kvmppc_mmu_map_segment(vcpu, eaddr); in kvmppc_mmu_map_page()
173 map = find_sid_vsid(vcpu, vsid); in kvmppc_mmu_map_page()
187 pteg = kvmppc_mmu_get_pteg(vcpu, vsid, eaddr, primary); in kvmppc_mmu_map_page()
211 mark_page_dirty(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT); in kvmppc_mmu_map_page()
244 pte = kvmppc_mmu_hpte_cache_next(vcpu); in kvmppc_mmu_map_page()
262 kvmppc_mmu_hpte_cache_map(vcpu, pte); in kvmppc_mmu_map_page()
269 void kvmppc_mmu_unmap_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte) in kvmppc_mmu_unmap_page() argument
271 kvmppc_mmu_pte_vflush(vcpu, pte->vpage, 0xfffffffffULL); in kvmppc_mmu_unmap_page()
274 static struct kvmppc_sid_map *create_sid_map(struct kvm_vcpu *vcpu, u64 gvsid) in create_sid_map() argument
277 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu); in create_sid_map()
281 if (kvmppc_get_msr(vcpu) & MSR_PR) in create_sid_map()
287 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid); in create_sid_map()
291 map = &to_book3s(vcpu)->sid_map[sid_map_mask]; in create_sid_map()
301 kvmppc_mmu_pte_flush(vcpu, 0, 0); in create_sid_map()
302 kvmppc_mmu_flush_segments(vcpu); in create_sid_map()
313 int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr) in kvmppc_mmu_map_segment() argument
319 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu); in kvmppc_mmu_map_segment()
322 if (vcpu->arch.mmu.esid_to_vsid(vcpu, esid, &gvsid)) { in kvmppc_mmu_map_segment()
329 map = find_sid_vsid(vcpu, gvsid); in kvmppc_mmu_map_segment()
331 map = create_sid_map(vcpu, gvsid); in kvmppc_mmu_map_segment()
344 void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu) in kvmppc_mmu_flush_segments() argument
347 struct kvmppc_book3s_shadow_vcpu *svcpu = svcpu_get(vcpu); in kvmppc_mmu_flush_segments()
356 void kvmppc_mmu_destroy_pr(struct kvm_vcpu *vcpu) in kvmppc_mmu_destroy_pr() argument
360 kvmppc_mmu_hpte_destroy(vcpu); in kvmppc_mmu_destroy_pr()
363 __destroy_context(to_book3s(vcpu)->context_id[i]); in kvmppc_mmu_destroy_pr()
370 int kvmppc_mmu_init(struct kvm_vcpu *vcpu) in kvmppc_mmu_init() argument
372 struct kvmppc_vcpu_book3s *vcpu3s = to_book3s(vcpu); in kvmppc_mmu_init()
396 kvmppc_mmu_hpte_init(vcpu); in kvmppc_mmu_init()
405 __destroy_context(to_book3s(vcpu)->context_id[j]); in kvmppc_mmu_init()