Lines Matching +full:data +full:- +full:mapping
1 // SPDX-License-Identifier: GPL-2.0-or-later
20 #include <asm/mips-cps.h>
26 /* Kernel-provided data used by the VDSO. */
28 struct vdso_data *vdso_data = mips_vdso_data.data;
31 * Mapping for the VDSO data/GIC pages. The real pages are mapped manually, as
46 BUG_ON(!PAGE_ALIGNED(image->data)); in init_vdso_image()
47 BUG_ON(!PAGE_ALIGNED(image->size)); in init_vdso_image()
49 num_pages = image->size / PAGE_SIZE; in init_vdso_image()
51 data_pfn = __phys_to_pfn(__pa_symbol(image->data)); in init_vdso_image()
53 image->mapping.pages[i] = pfn_to_page(data_pfn + i); in init_vdso_image()
81 if (current->flags & PF_RANDOMIZE) { in vdso_base()
82 base += get_random_int() & (VDSO_RANDOMIZE_SIZE - 1); in vdso_base()
91 struct mips_vdso_image *image = current->thread.abi->vdso; in arch_setup_additional_pages()
92 struct mm_struct *mm = current->mm; in arch_setup_additional_pages()
98 return -EINTR; in arch_setup_additional_pages()
113 * Determine total area size. This includes the VDSO data itself, the in arch_setup_additional_pages()
114 * data page, and the GIC user page if present. Always create a mapping in arch_setup_additional_pages()
122 size = vvar_size + image->size; in arch_setup_additional_pages()
126 * colour-matching alignment below. in arch_setup_additional_pages()
138 * If we suffer from dcache aliasing, ensure that the VDSO data page in arch_setup_additional_pages()
139 * mapping is coloured the same as the kernel's mapping of that memory. in arch_setup_additional_pages()
140 * This ensures that when the kernel updates the VDSO data userland in arch_setup_additional_pages()
145 base += ((unsigned long)vdso_data - gic_size) & shm_align_mask; in arch_setup_additional_pages()
169 /* Map data page. */ in arch_setup_additional_pages()
177 vma = _install_special_mapping(mm, vdso_addr, image->size, in arch_setup_additional_pages()
180 &image->mapping); in arch_setup_additional_pages()
186 mm->context.vdso = (void *)vdso_addr; in arch_setup_additional_pages()