Lines Matching refs:vaddr

110 	unsigned long 			vaddr;		/* Page(s) of instruction slots */  member
136 static loff_t vaddr_to_offset(struct vm_area_struct *vma, unsigned long vaddr) in vaddr_to_offset() argument
138 return ((loff_t)vma->vm_pgoff << PAGE_SHIFT) + (vaddr - vma->vm_start); in vaddr_to_offset()
233 static void copy_from_page(struct page *page, unsigned long vaddr, void *dst, int len) in copy_from_page() argument
236 memcpy(dst, kaddr + (vaddr & ~PAGE_MASK), len); in copy_from_page()
240 static void copy_to_page(struct page *page, unsigned long vaddr, const void *src, int len) in copy_to_page() argument
243 memcpy(kaddr + (vaddr & ~PAGE_MASK), src, len); in copy_to_page()
247 static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t *new_opcode) in verify_opcode() argument
261 copy_from_page(page, vaddr, &old_opcode, UPROBE_SWBP_INSN_SIZE); in verify_opcode()
292 int uprobe_write_opcode(struct mm_struct *mm, unsigned long vaddr, in uprobe_write_opcode() argument
301 ret = get_user_pages(NULL, mm, vaddr, 1, 0, 1, &old_page, &vma); in uprobe_write_opcode()
305 ret = verify_opcode(old_page, vaddr, &opcode); in uprobe_write_opcode()
314 new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vaddr); in uprobe_write_opcode()
320 copy_to_page(new_page, vaddr, &opcode, UPROBE_SWBP_INSN_SIZE); in uprobe_write_opcode()
322 ret = __replace_page(vma, vaddr, old_page, new_page); in uprobe_write_opcode()
341 int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_swbp() argument
343 return uprobe_write_opcode(mm, vaddr, UPROBE_SWBP_INSN); in set_swbp()
356 set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_orig_insn() argument
358 return uprobe_write_opcode(mm, vaddr, *(uprobe_opcode_t *)&auprobe->insn); in set_orig_insn()
580 struct mm_struct *mm, unsigned long vaddr) in prepare_uprobe() argument
600 ret = arch_uprobe_analyze_insn(&uprobe->arch, mm, vaddr); in prepare_uprobe()
642 struct vm_area_struct *vma, unsigned long vaddr) in install_breakpoint() argument
647 ret = prepare_uprobe(uprobe, vma->vm_file, mm, vaddr); in install_breakpoint()
659 ret = set_swbp(&uprobe->arch, mm, vaddr); in install_breakpoint()
669 remove_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, unsigned long vaddr) in remove_breakpoint() argument
672 return set_orig_insn(&uprobe->arch, mm, vaddr); in remove_breakpoint()
700 unsigned long vaddr; member
750 info->vaddr = offset_to_vaddr(vma, offset); in build_map_info()
803 vma = find_vma(mm, info->vaddr); in register_for_each_vma()
808 if (vma->vm_start > info->vaddr || in register_for_each_vma()
809 vaddr_to_offset(vma, info->vaddr) != uprobe->offset) in register_for_each_vma()
816 err = install_breakpoint(uprobe, mm, vma, info->vaddr); in register_for_each_vma()
820 err |= remove_breakpoint(uprobe, mm, info->vaddr); in register_for_each_vma()
967 unsigned long vaddr; in unapply_uprobe() local
979 vaddr = offset_to_vaddr(vma, uprobe->offset); in unapply_uprobe()
980 err |= remove_breakpoint(uprobe, mm, vaddr); in unapply_uprobe()
1078 unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset); in uprobe_mmap() local
1079 install_breakpoint(uprobe, vma->vm_mm, vma, vaddr); in uprobe_mmap()
1138 if (!area->vaddr) { in xol_add_vma()
1140 area->vaddr = get_unmapped_area(NULL, TASK_SIZE - PAGE_SIZE, in xol_add_vma()
1142 if (area->vaddr & ~PAGE_MASK) { in xol_add_vma()
1143 ret = area->vaddr; in xol_add_vma()
1148 vma = _install_special_mapping(mm, area->vaddr, PAGE_SIZE, in xol_add_vma()
1165 static struct xol_area *__create_xol_area(unsigned long vaddr) in __create_xol_area() argument
1186 area->vaddr = vaddr; in __create_xol_area()
1280 slot_addr = area->vaddr + (slot_nr * UPROBE_XOL_SLOT_BYTES); in xol_take_insn_slot()
1328 vma_end = area->vaddr + PAGE_SIZE; in xol_free_insn_slot()
1329 if (area->vaddr <= slot_addr && slot_addr < vma_end) { in xol_free_insn_slot()
1333 offset = slot_addr - area->vaddr; in xol_free_insn_slot()
1348 void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr, in arch_uprobe_copy_ixol() argument
1352 copy_to_page(page, vaddr, src, len); in arch_uprobe_copy_ixol()
1379 return utask->vaddr; in uprobe_get_trap_addr()
1502 t->utask->dup_xol_addr = area->vaddr; in uprobe_copy_process()
1521 trampoline_vaddr = area->vaddr; in get_trampoline_vaddr()
1622 utask->vaddr = bp_vaddr; in pre_ssout()
1688 static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr) in is_trap_at_addr() argument
1695 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr, in is_trap_at_addr()
1702 result = get_user_pages(NULL, mm, vaddr, 1, 0, 1, &page, NULL); in is_trap_at_addr()
1706 copy_from_page(page, vaddr, &opcode, UPROBE_SWBP_INSN_SIZE); in is_trap_at_addr()