Lines Matching refs:ref

191 	struct tlbe_ref *ref = &vcpu_e500->gtlb_priv[tlbsel][esel].ref;  in inval_gtlbe_on_host()  local
194 if (!(ref->flags & E500_TLB_VALID)) { in inval_gtlbe_on_host()
195 WARN(ref->flags & (E500_TLB_BITMAP | E500_TLB_TLB0), in inval_gtlbe_on_host()
196 "%s: flags %x\n", __func__, ref->flags); in inval_gtlbe_on_host()
200 if (tlbsel == 1 && ref->flags & E500_TLB_BITMAP) { in inval_gtlbe_on_host()
218 ref->flags &= ~(E500_TLB_BITMAP | E500_TLB_VALID); in inval_gtlbe_on_host()
222 if (tlbsel == 1 && ref->flags & E500_TLB_TLB0) { in inval_gtlbe_on_host()
228 ref->flags &= ~(E500_TLB_TLB0 | E500_TLB_VALID); in inval_gtlbe_on_host()
235 if (ref->flags & E500_TLB_VALID) in inval_gtlbe_on_host()
239 ref->flags = 0; in inval_gtlbe_on_host()
247 static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref, in kvmppc_e500_ref_setup() argument
251 ref->pfn = pfn; in kvmppc_e500_ref_setup()
252 ref->flags = E500_TLB_VALID; in kvmppc_e500_ref_setup()
255 ref->flags |= (gtlbe->mas2 & MAS2_ATTRIB_MASK) | wimg; in kvmppc_e500_ref_setup()
264 static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref) in kvmppc_e500_ref_release() argument
266 if (ref->flags & E500_TLB_VALID) { in kvmppc_e500_ref_release()
268 trace_kvm_booke206_ref_release(ref->pfn, ref->flags); in kvmppc_e500_ref_release()
269 ref->flags = 0; in kvmppc_e500_ref_release()
290 struct tlbe_ref *ref = in clear_tlb_privs() local
291 &vcpu_e500->gtlb_priv[tlbsel][i].ref; in clear_tlb_privs()
292 kvmppc_e500_ref_release(ref); in clear_tlb_privs()
309 int tsize, struct tlbe_ref *ref, u64 gvaddr, in kvmppc_e500_setup_stlbe() argument
312 pfn_t pfn = ref->pfn; in kvmppc_e500_setup_stlbe()
315 BUG_ON(!(ref->flags & E500_TLB_VALID)); in kvmppc_e500_setup_stlbe()
319 stlbe->mas2 = (gvaddr & MAS2_EPN) | (ref->flags & E500_TLB_MAS2_ATTR); in kvmppc_e500_setup_stlbe()
327 struct tlbe_ref *ref) in kvmppc_e500_shadow_map() argument
495 kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg); in kvmppc_e500_shadow_map()
498 ref, gvaddr, stlbe); in kvmppc_e500_shadow_map()
517 struct tlbe_ref *ref; in kvmppc_e500_tlb0_map() local
523 ref = &vcpu_e500->gtlb_priv[0][esel].ref; in kvmppc_e500_tlb0_map()
527 gtlbe, 0, stlbe, ref); in kvmppc_e500_tlb0_map()
537 struct tlbe_ref *ref, in kvmppc_e500_tlb1_map_tlb1() argument
550 vcpu_e500->gtlb_priv[1][esel].ref.flags |= E500_TLB_BITMAP; in kvmppc_e500_tlb1_map_tlb1()
553 WARN_ON(!(ref->flags & E500_TLB_VALID)); in kvmppc_e500_tlb1_map_tlb1()
565 struct tlbe_ref *ref = &vcpu_e500->gtlb_priv[1][esel].ref; in kvmppc_e500_tlb1_map() local
570 ref); in kvmppc_e500_tlb1_map()
576 vcpu_e500->gtlb_priv[1][esel].ref.flags |= E500_TLB_TLB0; in kvmppc_e500_tlb1_map()
582 sesel = kvmppc_e500_tlb1_map_tlb1(vcpu_e500, ref, esel); in kvmppc_e500_tlb1_map()
604 if (!(priv->ref.flags & E500_TLB_VALID)) { in kvmppc_mmu_map()
608 &priv->ref, eaddr, &stlbe); in kvmppc_mmu_map()