Lines Matching refs:image

47 int __init init_vdso_image(const struct vdso_image *image)
50 BUG_ON(image->size % PAGE_SIZE != 0);
52 apply_alternatives((struct alt_instr *)(image->data + image->alt),
53 (struct alt_instr *)(image->data + image->alt +
54 image->alt_len));
65 const struct vdso_image *image = vma->vm_mm->context.vdso_image;
67 if (!image || (vmf->pgoff << PAGE_SHIFT) >= image->size)
70 vmf->page = virt_to_page(image->data + (vmf->pgoff << PAGE_SHIFT));
75 static void vdso_fix_landing(const struct vdso_image *image,
79 if (in_ia32_syscall() && image == &vdso_image_32) {
81 unsigned long vdso_land = image->sym_int80_landing_pad;
95 const struct vdso_image *image = current->mm->context.vdso_image;
97 vdso_fix_landing(image, new_vma);
131 const struct vdso_image *image = vma->vm_mm->context.vdso_image;
135 if (!image)
139 image->sym_vvar_start;
143 * does not exist for this vdso image, not that the page is at
151 if (sym_offset == image->sym_vvar_page) {
173 addr = vmf->address + (image->sym_timens_page - sym_offset);
182 } else if (sym_offset == image->sym_pvclock_page) {
190 } else if (sym_offset == image->sym_hvclock_page) {
195 } else if (sym_offset == image->sym_timens_page) {
220 * @image - blob to map
223 static int map_vdso(const struct vdso_image *image, unsigned long addr)
234 image->size - image->sym_vvar_start, 0, 0);
240 text_start = addr - image->sym_vvar_start;
247 image->size,
259 -image->sym_vvar_start,
266 do_munmap(mm, text_start, image->size, NULL);
269 current->mm->context.vdso_image = image;
277 int map_vdso_once(const struct vdso_image *image, unsigned long addr)
300 return map_vdso(image, addr);
350 const struct vdso_image *image = current->mm->context.vdso_image;
353 if (in_ia32_syscall() && image == &vdso_image_32) {
354 if (regs->ip == vdso + image->sym_vdso32_sigreturn_landing_pad ||
355 regs->ip == vdso + image->sym_vdso32_rt_sigreturn_landing_pad)