Lines Matching refs:image
47 void __init init_vdso_image(const struct vdso_image *image) in init_vdso_image() argument
49 BUG_ON(image->size % PAGE_SIZE != 0); in init_vdso_image()
51 apply_alternatives((struct alt_instr *)(image->data + image->alt), in init_vdso_image()
52 (struct alt_instr *)(image->data + image->alt + in init_vdso_image()
53 image->alt_len)); in init_vdso_image()
62 const struct vdso_image *image = vma->vm_mm->context.vdso_image; in vdso_fault() local
64 if (!image || (vmf->pgoff << PAGE_SHIFT) >= image->size) in vdso_fault()
67 vmf->page = virt_to_page(image->data + (vmf->pgoff << PAGE_SHIFT)); in vdso_fault()
72 static void vdso_fix_landing(const struct vdso_image *image, in vdso_fix_landing() argument
76 if (in_ia32_syscall() && image == &vdso_image_32) { in vdso_fix_landing()
78 unsigned long vdso_land = image->sym_int80_landing_pad; in vdso_fix_landing()
92 const struct vdso_image *image = current->mm->context.vdso_image; in vdso_mremap() local
94 vdso_fix_landing(image, new_vma); in vdso_mremap()
153 const struct vdso_image *image = vma->vm_mm->context.vdso_image; in vvar_fault() local
157 if (!image) in vvar_fault()
161 image->sym_vvar_start; in vvar_fault()
173 if (sym_offset == image->sym_vvar_page) { in vvar_fault()
195 addr = vmf->address + (image->sym_timens_page - sym_offset); in vvar_fault()
204 } else if (sym_offset == image->sym_pvclock_page) { in vvar_fault()
212 } else if (sym_offset == image->sym_hvclock_page) { in vvar_fault()
218 } else if (sym_offset == image->sym_timens_page) { in vvar_fault()
246 static int map_vdso(const struct vdso_image *image, unsigned long addr) in map_vdso() argument
257 image->size - image->sym_vvar_start, 0, 0); in map_vdso()
263 text_start = addr - image->sym_vvar_start; in map_vdso()
270 image->size, in map_vdso()
282 -image->sym_vvar_start, in map_vdso()
289 do_munmap(mm, text_start, image->size, NULL); in map_vdso()
292 current->mm->context.vdso_image = image; in map_vdso()
345 static int map_vdso_randomized(const struct vdso_image *image) in map_vdso_randomized() argument
347 unsigned long addr = vdso_addr(current->mm->start_stack, image->size-image->sym_vvar_start); in map_vdso_randomized()
349 return map_vdso(image, addr); in map_vdso_randomized()
353 int map_vdso_once(const struct vdso_image *image, unsigned long addr) in map_vdso_once() argument
376 return map_vdso(image, addr); in map_vdso_once()
426 const struct vdso_image *image = current->mm->context.vdso_image; in arch_syscall_is_vdso_sigreturn() local
429 if (in_ia32_syscall() && image == &vdso_image_32) { in arch_syscall_is_vdso_sigreturn()
430 if (regs->ip == vdso + image->sym_vdso32_sigreturn_landing_pad || in arch_syscall_is_vdso_sigreturn()
431 regs->ip == vdso + image->sym_vdso32_rt_sigreturn_landing_pad) in arch_syscall_is_vdso_sigreturn()