Lines Matching refs:vaddr

118 	unsigned long 		vaddr;		/* Page(s) of instruction slots */  member
144 static loff_t vaddr_to_offset(struct vm_area_struct *vma, unsigned long vaddr) in vaddr_to_offset() argument
146 return ((loff_t)vma->vm_pgoff << PAGE_SHIFT) + (vaddr - vma->vm_start); in vaddr_to_offset()
241 static void copy_from_page(struct page *page, unsigned long vaddr, void *dst, int len) in copy_from_page() argument
244 memcpy(dst, kaddr + (vaddr & ~PAGE_MASK), len); in copy_from_page()
248 static void copy_to_page(struct page *page, unsigned long vaddr, const void *src, int len) in copy_to_page() argument
251 memcpy(kaddr + (vaddr & ~PAGE_MASK), src, len); in copy_to_page()
255 static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t *new_opcode) in verify_opcode() argument
269 copy_from_page(page, vaddr, &old_opcode, UPROBE_SWBP_INSN_SIZE); in verify_opcode()
300 int uprobe_write_opcode(struct mm_struct *mm, unsigned long vaddr, in uprobe_write_opcode() argument
309 ret = get_user_pages(NULL, mm, vaddr, 1, 0, 1, &old_page, &vma); in uprobe_write_opcode()
313 ret = verify_opcode(old_page, vaddr, &opcode); in uprobe_write_opcode()
322 new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vaddr); in uprobe_write_opcode()
328 copy_to_page(new_page, vaddr, &opcode, UPROBE_SWBP_INSN_SIZE); in uprobe_write_opcode()
330 ret = __replace_page(vma, vaddr, old_page, new_page); in uprobe_write_opcode()
349 int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_swbp() argument
351 return uprobe_write_opcode(mm, vaddr, UPROBE_SWBP_INSN); in set_swbp()
364 set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_orig_insn() argument
366 return uprobe_write_opcode(mm, vaddr, *(uprobe_opcode_t *)&auprobe->insn); in set_orig_insn()
586 struct mm_struct *mm, unsigned long vaddr) in prepare_uprobe() argument
606 ret = arch_uprobe_analyze_insn(&uprobe->arch, mm, vaddr); in prepare_uprobe()
648 struct vm_area_struct *vma, unsigned long vaddr) in install_breakpoint() argument
653 ret = prepare_uprobe(uprobe, vma->vm_file, mm, vaddr); in install_breakpoint()
665 ret = set_swbp(&uprobe->arch, mm, vaddr); in install_breakpoint()
675 remove_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, unsigned long vaddr) in remove_breakpoint() argument
678 return set_orig_insn(&uprobe->arch, mm, vaddr); in remove_breakpoint()
706 unsigned long vaddr; member
756 info->vaddr = offset_to_vaddr(vma, offset); in build_map_info()
809 vma = find_vma(mm, info->vaddr); in register_for_each_vma()
814 if (vma->vm_start > info->vaddr || in register_for_each_vma()
815 vaddr_to_offset(vma, info->vaddr) != uprobe->offset) in register_for_each_vma()
822 err = install_breakpoint(uprobe, mm, vma, info->vaddr); in register_for_each_vma()
826 err |= remove_breakpoint(uprobe, mm, info->vaddr); in register_for_each_vma()
973 unsigned long vaddr; in unapply_uprobe() local
985 vaddr = offset_to_vaddr(vma, uprobe->offset); in unapply_uprobe()
986 err |= remove_breakpoint(uprobe, mm, vaddr); in unapply_uprobe()
1084 unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset); in uprobe_mmap() local
1085 install_breakpoint(uprobe, vma->vm_mm, vma, vaddr); in uprobe_mmap()
1141 if (!area->vaddr) { in xol_add_vma()
1143 area->vaddr = get_unmapped_area(NULL, TASK_SIZE - PAGE_SIZE, in xol_add_vma()
1145 if (area->vaddr & ~PAGE_MASK) { in xol_add_vma()
1146 ret = area->vaddr; in xol_add_vma()
1151 ret = install_special_mapping(mm, area->vaddr, PAGE_SIZE, in xol_add_vma()
1164 static struct xol_area *__create_xol_area(unsigned long vaddr) in __create_xol_area() argument
1182 area->vaddr = vaddr; in __create_xol_area()
1276 slot_addr = area->vaddr + (slot_nr * UPROBE_XOL_SLOT_BYTES); in xol_take_insn_slot()
1324 vma_end = area->vaddr + PAGE_SIZE; in xol_free_insn_slot()
1325 if (area->vaddr <= slot_addr && slot_addr < vma_end) { in xol_free_insn_slot()
1329 offset = slot_addr - area->vaddr; in xol_free_insn_slot()
1343 void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr, in arch_uprobe_copy_ixol() argument
1347 copy_to_page(page, vaddr, src, len); in arch_uprobe_copy_ixol()
1374 return utask->vaddr; in uprobe_get_trap_addr()
1494 t->utask->dup_xol_addr = area->vaddr; in uprobe_copy_process()
1513 trampoline_vaddr = area->vaddr; in get_trampoline_vaddr()
1603 utask->vaddr = bp_vaddr; in pre_ssout()
1669 static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr) in is_trap_at_addr() argument
1676 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr, in is_trap_at_addr()
1683 result = get_user_pages(NULL, mm, vaddr, 1, 0, 1, &page, NULL); in is_trap_at_addr()
1687 copy_from_page(page, vaddr, &opcode, UPROBE_SWBP_INSN_SIZE); in is_trap_at_addr()