Lines Matching refs:addr

22 				unsigned long addr;  member
29 unsigned long addr; member
33 unsigned long addr; member
70 ret = map(hvc->id, op->u.mmap.addr, op->u.mmap.len, in do_ops()
75 ret = unmap(hvc->id, op->u.munmap.addr, in do_ops()
79 ret = protect(hvc->id, op->u.mprotect.addr, in do_ops()
108 (last->u.mmap.addr + last->u.mmap.len == virt) && in add_mmap()
123 .u = { .mmap = { .addr = virt, in add_mmap()
132 static int add_munmap(unsigned long addr, unsigned long len, in add_munmap() argument
138 if ((addr >= STUB_START) && (addr < STUB_END)) in add_munmap()
144 (last->u.munmap.addr + last->u.mmap.len == addr)) { in add_munmap()
157 .u = { .munmap = { .addr = addr, in add_munmap()
162 static int add_mprotect(unsigned long addr, unsigned long len, in add_mprotect() argument
171 (last->u.mprotect.addr + last->u.mprotect.len == addr) && in add_mprotect()
185 .u = { .mprotect = { .addr = addr, in add_mprotect()
193 static inline int update_pte_range(pmd_t *pmd, unsigned long addr, in update_pte_range() argument
200 pte = pte_offset_kernel(pmd, addr); in update_pte_range()
202 if ((addr >= STUB_START) && (addr < STUB_END)) in update_pte_range()
218 ret = add_mmap(addr, pte_val(*pte) & PAGE_MASK, in update_pte_range()
221 ret = add_munmap(addr, PAGE_SIZE, hvc); in update_pte_range()
223 ret = add_mprotect(addr, PAGE_SIZE, prot, hvc); in update_pte_range()
225 } while (pte++, addr += PAGE_SIZE, ((addr < end) && !ret)); in update_pte_range()
229 static inline int update_pmd_range(pud_t *pud, unsigned long addr, in update_pmd_range() argument
237 pmd = pmd_offset(pud, addr); in update_pmd_range()
239 next = pmd_addr_end(addr, end); in update_pmd_range()
242 ret = add_munmap(addr, next - addr, hvc); in update_pmd_range()
246 else ret = update_pte_range(pmd, addr, next, hvc); in update_pmd_range()
247 } while (pmd++, addr = next, ((addr < end) && !ret)); in update_pmd_range()
251 static inline int update_pud_range(pgd_t *pgd, unsigned long addr, in update_pud_range() argument
259 pud = pud_offset(pgd, addr); in update_pud_range()
261 next = pud_addr_end(addr, end); in update_pud_range()
264 ret = add_munmap(addr, next - addr, hvc); in update_pud_range()
268 else ret = update_pmd_range(pud, addr, next, hvc); in update_pud_range()
269 } while (pud++, addr = next, ((addr < end) && !ret)); in update_pud_range()
278 unsigned long addr = start_addr, next; in fix_range_common() local
282 pgd = pgd_offset(mm, addr); in fix_range_common()
284 next = pgd_addr_end(addr, end_addr); in fix_range_common()
287 ret = add_munmap(addr, next - addr, &hvc); in fix_range_common()
291 else ret = update_pud_range(pgd, addr, next, &hvc); in fix_range_common()
292 } while (pgd++, addr = next, ((addr < end_addr) && !ret)); in fix_range_common()
315 unsigned long addr, last; in flush_tlb_kernel_range_common() local
319 for (addr = start; addr < end;) { in flush_tlb_kernel_range_common()
320 pgd = pgd_offset(mm, addr); in flush_tlb_kernel_range_common()
322 last = ADD_ROUND(addr, PGDIR_SIZE); in flush_tlb_kernel_range_common()
327 err = os_unmap_memory((void *) addr, in flush_tlb_kernel_range_common()
328 last - addr); in flush_tlb_kernel_range_common()
333 addr = last; in flush_tlb_kernel_range_common()
337 pud = pud_offset(pgd, addr); in flush_tlb_kernel_range_common()
339 last = ADD_ROUND(addr, PUD_SIZE); in flush_tlb_kernel_range_common()
344 err = os_unmap_memory((void *) addr, in flush_tlb_kernel_range_common()
345 last - addr); in flush_tlb_kernel_range_common()
350 addr = last; in flush_tlb_kernel_range_common()
354 pmd = pmd_offset(pud, addr); in flush_tlb_kernel_range_common()
356 last = ADD_ROUND(addr, PMD_SIZE); in flush_tlb_kernel_range_common()
361 err = os_unmap_memory((void *) addr, in flush_tlb_kernel_range_common()
362 last - addr); in flush_tlb_kernel_range_common()
367 addr = last; in flush_tlb_kernel_range_common()
371 pte = pte_offset_kernel(pmd, addr); in flush_tlb_kernel_range_common()
374 err = os_unmap_memory((void *) addr, in flush_tlb_kernel_range_common()
380 map_memory(addr, in flush_tlb_kernel_range_common()
386 os_protect_memory((void *) addr, PAGE_SIZE, 1, 1, 1); in flush_tlb_kernel_range_common()
388 addr += PAGE_SIZE; in flush_tlb_kernel_range_common()
482 pte_t *addr_pte(struct task_struct *task, unsigned long addr) in addr_pte() argument
484 pgd_t *pgd = pgd_offset(task->mm, addr); in addr_pte()
485 pud_t *pud = pud_offset(pgd, addr); in addr_pte()
486 pmd_t *pmd = pmd_offset(pud, addr); in addr_pte()
488 return pte_offset_map(pmd, addr); in addr_pte()
506 void __flush_tlb_one(unsigned long addr) in __flush_tlb_one() argument
508 flush_tlb_kernel_range_common(addr, addr + PAGE_SIZE); in __flush_tlb_one()