Lines Matching refs:rmap
75 unsigned long *rmap, long pte_index, int realmode) in kvmppc_add_revmap_chain() argument
80 if (*rmap & KVMPPC_RMAP_PRESENT) { in kvmppc_add_revmap_chain()
81 i = *rmap & KVMPPC_RMAP_INDEX; in kvmppc_add_revmap_chain()
94 *rmap = (*rmap & ~KVMPPC_RMAP_INDEX) | in kvmppc_add_revmap_chain()
97 unlock_rmap(rmap); in kvmppc_add_revmap_chain()
102 void kvmppc_update_rmap_change(unsigned long *rmap, unsigned long psize) in kvmppc_update_rmap_change() argument
110 if (order > (*rmap & KVMPPC_RMAP_CHG_ORDER)) in kvmppc_update_rmap_change()
111 *rmap = (*rmap & ~KVMPPC_RMAP_CHG_ORDER) | order; in kvmppc_update_rmap_change()
120 unsigned long *rmap; in revmap_for_hpte() local
128 rmap = real_vmalloc_addr(&memslot->arch.rmap[gfn - memslot->base_gfn]); in revmap_for_hpte()
129 return rmap; in revmap_for_hpte()
139 unsigned long *rmap; in remove_revmap_chain() local
144 rmap = revmap_for_hpte(kvm, hpte_v, ptel); in remove_revmap_chain()
145 if (!rmap) in remove_revmap_chain()
147 lock_rmap(rmap); in remove_revmap_chain()
149 head = *rmap & KVMPPC_RMAP_INDEX; in remove_revmap_chain()
157 *rmap &= ~(KVMPPC_RMAP_PRESENT | KVMPPC_RMAP_INDEX); in remove_revmap_chain()
159 *rmap = (*rmap & ~KVMPPC_RMAP_INDEX) | head; in remove_revmap_chain()
161 *rmap |= rcbits << KVMPPC_RMAP_RC_SHIFT; in remove_revmap_chain()
163 kvmppc_update_rmap_change(rmap, hpte_page_size(hpte_v, hpte_r)); in remove_revmap_chain()
164 unlock_rmap(rmap); in remove_revmap_chain()
179 unsigned long *rmap; in kvmppc_do_h_enter() local
203 rmap = NULL; in kvmppc_do_h_enter()
215 rmap = &memslot->arch.rmap[slot_fn]; in kvmppc_do_h_enter()
347 rmap = real_vmalloc_addr(rmap); in kvmppc_do_h_enter()
348 lock_rmap(rmap); in kvmppc_do_h_enter()
354 unlock_rmap(rmap); in kvmppc_do_h_enter()
356 kvmppc_add_revmap_chain(kvm, rev, rmap, pte_index, in kvmppc_do_h_enter()
359 rcbits = *rmap >> KVMPPC_RMAP_RC_SHIFT; in kvmppc_do_h_enter()
705 unsigned long *rmap; in kvmppc_h_clear_ref() local
729 rmap = revmap_for_hpte(kvm, v, gr); in kvmppc_h_clear_ref()
730 if (rmap) { in kvmppc_h_clear_ref()
731 lock_rmap(rmap); in kvmppc_h_clear_ref()
732 *rmap |= KVMPPC_RMAP_REFERENCED; in kvmppc_h_clear_ref()
733 unlock_rmap(rmap); in kvmppc_h_clear_ref()
751 unsigned long *rmap; in kvmppc_h_clear_mod() local
781 rmap = revmap_for_hpte(kvm, v, gr); in kvmppc_h_clear_mod()
782 if (rmap) { in kvmppc_h_clear_mod()
783 lock_rmap(rmap); in kvmppc_h_clear_mod()
784 *rmap |= KVMPPC_RMAP_CHANGED; in kvmppc_h_clear_mod()
785 kvmppc_update_rmap_change(rmap, psize); in kvmppc_h_clear_mod()
786 unlock_rmap(rmap); in kvmppc_h_clear_mod()