Lines Matching full:addr
22 unsigned long addr; member
29 unsigned long addr; member
33 unsigned long addr; member
73 ret = map(&hvc->mm->context.id, op->u.mmap.addr, in do_ops()
79 map_memory(op->u.mmap.addr, op->u.mmap.offset, in do_ops()
85 op->u.munmap.addr, in do_ops()
90 (void *) op->u.munmap.addr, in do_ops()
97 op->u.mprotect.addr, in do_ops()
103 (void *) op->u.mprotect.addr, in do_ops()
135 (last->u.mmap.addr + last->u.mmap.len == virt) && in add_mmap()
150 .u = { .mmap = { .addr = virt, in add_mmap()
159 static int add_munmap(unsigned long addr, unsigned long len, in add_munmap() argument
165 if ((addr >= STUB_START) && (addr < STUB_END)) in add_munmap()
171 (last->u.munmap.addr + last->u.mmap.len == addr)) { in add_munmap()
184 .u = { .munmap = { .addr = addr, in add_munmap()
189 static int add_mprotect(unsigned long addr, unsigned long len, in add_mprotect() argument
198 (last->u.mprotect.addr + last->u.mprotect.len == addr) && in add_mprotect()
212 .u = { .mprotect = { .addr = addr, in add_mprotect()
220 static inline int update_pte_range(pmd_t *pmd, unsigned long addr, in update_pte_range() argument
227 pte = pte_offset_kernel(pmd, addr); in update_pte_range()
229 if ((addr >= STUB_START) && (addr < STUB_END)) in update_pte_range()
246 ret = add_mmap(addr, pte_val(*pte) & PAGE_MASK, in update_pte_range()
249 ret = add_munmap(addr, PAGE_SIZE, hvc); in update_pte_range()
251 ret = add_mprotect(addr, PAGE_SIZE, prot, hvc); in update_pte_range()
253 } while (pte++, addr += PAGE_SIZE, ((addr < end) && !ret)); in update_pte_range()
257 static inline int update_pmd_range(pud_t *pud, unsigned long addr, in update_pmd_range() argument
265 pmd = pmd_offset(pud, addr); in update_pmd_range()
267 next = pmd_addr_end(addr, end); in update_pmd_range()
270 ret = add_munmap(addr, next - addr, hvc); in update_pmd_range()
274 else ret = update_pte_range(pmd, addr, next, hvc); in update_pmd_range()
275 } while (pmd++, addr = next, ((addr < end) && !ret)); in update_pmd_range()
279 static inline int update_pud_range(p4d_t *p4d, unsigned long addr, in update_pud_range() argument
287 pud = pud_offset(p4d, addr); in update_pud_range()
289 next = pud_addr_end(addr, end); in update_pud_range()
292 ret = add_munmap(addr, next - addr, hvc); in update_pud_range()
296 else ret = update_pmd_range(pud, addr, next, hvc); in update_pud_range()
297 } while (pud++, addr = next, ((addr < end) && !ret)); in update_pud_range()
301 static inline int update_p4d_range(pgd_t *pgd, unsigned long addr, in update_p4d_range() argument
309 p4d = p4d_offset(pgd, addr); in update_p4d_range()
311 next = p4d_addr_end(addr, end); in update_p4d_range()
314 ret = add_munmap(addr, next - addr, hvc); in update_p4d_range()
318 ret = update_pud_range(p4d, addr, next, hvc); in update_p4d_range()
319 } while (p4d++, addr = next, ((addr < end) && !ret)); in update_p4d_range()
328 unsigned long addr = start_addr, next; in fix_range_common() local
332 pgd = pgd_offset(mm, addr); in fix_range_common()
334 next = pgd_addr_end(addr, end_addr); in fix_range_common()
337 ret = add_munmap(addr, next - addr, &hvc); in fix_range_common()
341 ret = update_p4d_range(pgd, addr, next, &hvc); in fix_range_common()
342 } while (pgd++, addr = next, ((addr < end_addr) && !ret)); in fix_range_common()
366 unsigned long addr, last; in flush_tlb_kernel_range_common() local
372 for (addr = start; addr < end;) { in flush_tlb_kernel_range_common()
373 pgd = pgd_offset(mm, addr); in flush_tlb_kernel_range_common()
375 last = ADD_ROUND(addr, PGDIR_SIZE); in flush_tlb_kernel_range_common()
380 err = add_munmap(addr, last - addr, &hvc); in flush_tlb_kernel_range_common()
385 addr = last; in flush_tlb_kernel_range_common()
389 p4d = p4d_offset(pgd, addr); in flush_tlb_kernel_range_common()
391 last = ADD_ROUND(addr, P4D_SIZE); in flush_tlb_kernel_range_common()
396 err = add_munmap(addr, last - addr, &hvc); in flush_tlb_kernel_range_common()
401 addr = last; in flush_tlb_kernel_range_common()
405 pud = pud_offset(p4d, addr); in flush_tlb_kernel_range_common()
407 last = ADD_ROUND(addr, PUD_SIZE); in flush_tlb_kernel_range_common()
412 err = add_munmap(addr, last - addr, &hvc); in flush_tlb_kernel_range_common()
417 addr = last; in flush_tlb_kernel_range_common()
421 pmd = pmd_offset(pud, addr); in flush_tlb_kernel_range_common()
423 last = ADD_ROUND(addr, PMD_SIZE); in flush_tlb_kernel_range_common()
428 err = add_munmap(addr, last - addr, &hvc); in flush_tlb_kernel_range_common()
433 addr = last; in flush_tlb_kernel_range_common()
437 pte = pte_offset_kernel(pmd, addr); in flush_tlb_kernel_range_common()
440 err = add_munmap(addr, PAGE_SIZE, &hvc); in flush_tlb_kernel_range_common()
445 err = add_mmap(addr, pte_val(*pte) & PAGE_MASK, in flush_tlb_kernel_range_common()
450 err = add_mprotect(addr, PAGE_SIZE, 0, &hvc); in flush_tlb_kernel_range_common()
452 addr += PAGE_SIZE; in flush_tlb_kernel_range_common()
558 void __flush_tlb_one(unsigned long addr) in __flush_tlb_one() argument
560 flush_tlb_kernel_range_common(addr, addr + PAGE_SIZE); in __flush_tlb_one()