Lines Matching refs:addr
42 static inline unsigned long gstage_pte_index(gpa_t addr, u32 level)
52 return (addr >> shift) & mask;
97 static bool gstage_get_leaf_entry(struct kvm *kvm, gpa_t addr,
105 ptep = &ptep[gstage_pte_index(addr, current_level)];
117 ptep = &ptep[gstage_pte_index(addr, current_level)];
126 static void gstage_remote_tlb_flush(struct kvm *kvm, u32 level, gpa_t addr)
132 addr &= ~(BIT(order) - 1);
134 kvm_riscv_hfence_gvma_vmid_gpa(kvm, -1UL, 0, addr, BIT(order), order);
139 gpa_t addr, const pte_t *new_pte)
143 pte_t *ptep = &next_ptep[gstage_pte_index(addr, current_level)];
167 ptep = &next_ptep[gstage_pte_index(addr, current_level)];
172 gstage_remote_tlb_flush(kvm, current_level, addr);
228 static void gstage_op_pte(struct kvm *kvm, gpa_t addr,
240 BUG_ON(addr & (page_size - 1));
256 gstage_op_pte(kvm, addr + i * next_page_size,
265 gstage_remote_tlb_flush(kvm, ptep_level, addr);
277 gpa_t addr = start, end = start + size;
279 while (addr < end) {
280 found_leaf = gstage_get_leaf_entry(kvm, addr,
289 if (!(addr & (page_size - 1)) && ((end - addr) >= page_size))
290 gstage_op_pte(kvm, addr, ptep,
294 addr += page_size;
300 if (may_block && addr < end)
311 gpa_t addr = start;
314 while (addr < end) {
315 found_leaf = gstage_get_leaf_entry(kvm, addr,
324 if (!(addr & (page_size - 1)) && ((end - addr) >= page_size))
325 gstage_op_pte(kvm, addr, ptep,
329 addr += page_size;
353 phys_addr_t addr, end;
362 for (addr = gpa; addr < end; addr += PAGE_SIZE) {
373 ret = gstage_set_pte(kvm, 0, &pcache, addr, &pte);